1

我正在尝试从镶木地板文件中读取一系列数据(例如第 1000 到 5000 行)。我已经尝试过使用 fastparquet 引擎甚至 pyarraw 的 pandas,但似乎找不到任何选择。

有什么办法可以做到这一点?

4

1 回答 1

1

我认为当前的 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)])
于 2020-11-22T14:08:33.237 回答