mat*_*ner 1 python parquet pyarrow
我有一个分区镶木地板数据集,我正在尝试将其读入 pandas 数据帧。完整的镶木地板数据集不适合内存,因此我只需选择一些分区(分区列是年、月和日期。我有以下内容:
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715"), ("Date", "<=", "2020804")]
)
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序时,出现内存错误/python 程序崩溃。但是,当我运行以下命令时,它可以正常工作,即使理论上它会返回完全相同数量的数据(我的数据集在 4 号停止)。
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715")]
)
Run Code Online (Sandbox Code Playgroud)
似乎第二个过滤器("Date", "<=", "2020804")优先于第一个过滤器,并且不被视为复合表达式。在我当前的用例中,我可以删除第二个过滤器,但在其他情况下,数据将更多地位于总范围的中间,如果没有第二个过滤器,我最终会再次读取太多内容。
我尝试了以下每一项,但没有运气。
(("Date", ">=", "20200715") & ("Date", "<=", "2020804"))
("Date", ">=", "20200715", "Date", "<=", "2020804")
Run Code Online (Sandbox Code Playgroud)
有没有办法处理同一分区/列上的复合表达式?
此处参考文档: https: //arrow.apache.org/docs/python/dataset.html
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |