DuckDB可以查询多种不同类型的Apache Arrow对象。
Apache Arrow表
存储在本地变量中的Arrow表可以像DuckDB中的常规表一样被查询。
import duckdb
import pyarrow as pa
# 连接到内存数据库
con = duckdb.connect()
my_arrow_table = pa.Table.from_pydict({
'i': [1, 2, 3, 4],
'j': ["one", "two", "three", "four"]})
# 查询Apache Arrow表"my_arrow_table"并以Arrow表的形式返回结果
results = con.execute("SELECT * FROM my_arrow_table WHERE i = 2").arrow()
Apache Arrow数据集
存储为变量的Arrow数据集也可以像常规表一样被查询。
数据集对于指向Parquet文件目录以分析大型数据集非常有用。
DuckDB会将列选择和行过滤推送到数据集扫描操作中,以便只将必要的数据拉入内存。
import duckdb
import pyarrow as pa
import tempfile
import pathlib
import pyarrow.parquet as pq
import</