具有多个条件的pyarrow数据集过滤
pyarrow dataset filtering with multiple conditions
我有一个分区的镶木地板数据集,我正在尝试将其读入 pandas 数据帧。完整的镶木地板数据集不适合内存,所以我只需要 select 一些分区(分区列是年、月和日期。我有以下内容:
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715"), ("Date", "<=", "2020804")]
)
当我 运行 出现内存错误/python 程序崩溃。但是,当我 运行 以下内容时,它可以正常工作,即使理论上它会 return 完全相同的数据量(我的数据集在 4 日停止)。
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715")]
)
似乎第二个筛选器 ("Date", "<=", "2020804")
优先于第一个筛选器并且未被视为复合表达式。在我当前的用例中,我可以只删除第二个过滤器,但我有其他人,其中数据将更多地位于总范围的中间,如果没有第二个过滤器,我最终会再次读取太多。
我尝试了以下各项,但都没有成功。
(("Date", ">=", "20200715") & ("Date", "<=", "2020804"))
("Date", ">=", "20200715", "Date", "<=", "2020804")
有没有办法处理同一分区/列上的复合表达式?
“2020804”似乎不是有效日期,您缺少一个零。
我有一个分区的镶木地板数据集,我正在尝试将其读入 pandas 数据帧。完整的镶木地板数据集不适合内存,所以我只需要 select 一些分区(分区列是年、月和日期。我有以下内容:
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715"), ("Date", "<=", "2020804")]
)
当我 运行 出现内存错误/python 程序崩溃。但是,当我 运行 以下内容时,它可以正常工作,即使理论上它会 return 完全相同的数据量(我的数据集在 4 日停止)。
pd.read_parquet(
path_to_dataset,
filters=[("Date", ">=", "20200715")]
)
似乎第二个筛选器 ("Date", "<=", "2020804")
优先于第一个筛选器并且未被视为复合表达式。在我当前的用例中,我可以只删除第二个过滤器,但我有其他人,其中数据将更多地位于总范围的中间,如果没有第二个过滤器,我最终会再次读取太多。
我尝试了以下各项,但都没有成功。
(("Date", ">=", "20200715") & ("Date", "<=", "2020804"))
("Date", ">=", "20200715", "Date", "<=", "2020804")
有没有办法处理同一分区/列上的复合表达式?
“2020804”似乎不是有效日期,您缺少一个零。