我正在尝试从镶木地板文件中读取一系列数据(例如第 1000 到 5000 行)。我已经尝试过使用 fastparquet 引擎甚至 pyarraw 的 pandas,但似乎找不到任何选择。
有什么办法可以做到这一点?
我正在尝试从镶木地板文件中读取一系列数据(例如第 1000 到 5000 行)。我已经尝试过使用 fastparquet 引擎甚至 pyarraw 的 pandas,但似乎找不到任何选择。
有什么办法可以做到这一点?
我认为当前的 pyarrow 版本(2.0)不支持它。
文件切片最接近的方法是filters
使用read_table
.
filters (List[Tuple] or List[List[Tuple]] or None (default)) – 不匹配过滤谓词的行将从扫描数据中删除。
谓词以析取范式 (DNF) 表示,例如 [[('x', '=', 0), > ...], ...]。DNF 允许单列谓词的任意布尔逻辑组合
如果您的数据集有一个列foo
,您可以根据该列获取所需的行,请使用以下内容:
import pyarrow.parquet as pq
table = pq.read_table(filename, filters=[('foo', '>', 0)])
如果您碰巧有一列id
对应于行索引,您可以使用
table = pq.read_table(filename, filters=[('id', '>', 1000), ('id', '<', 5000)])