【发布时间】:2021-07-30 10:28:35
【问题描述】:
我想在使用 Dask 读取 Parquet 文件时对其进行过滤,但我无法正确处理并不断收到相同的错误。
TypeError: '>=' not supported between instances of 'Timestamp' and 'str'
我目前的做法是:
ddf = dd.read_parquet(path="s3://[BUCKET_NAME]/[FOLDER/PREFIX]/*",
columns=['COL1', 'COL2', 'DATE_COL'],
filters=[[('DATE_COL', '>=', '2020-05-01'), ('DATE_COL', '<', '2020-06-01')]],
engine="pyarrow-dataset")
'DATE_COL' 具有 dtype datetime64[ns] 和一些 NaT 值。其他列的 dtype 为 object。
有人知道怎么做吗?也许我需要提供 dtype 参数,如果是这种情况,我如何告诉 read_parquet() 方法“DATE_COL”是日期时间列?
更新
如果我尝试以下操作:
ddf = dd.read_parquet(path="s3://[BUCKET_NAME]/[FOLDER/PREFIX]/*",
columns=['COL1', 'COL2', 'DATE_COL'],
filters=[[('DATE_COL', '>=', pd.Timestamp('2020-05-01')), ('DATE_COL', '<', pd.Timestamp('2020-06-01'))]],
engine="pyarrow-dataset")
我收到此错误:
TypeError: Cannot compare tz-naive and tz-aware timestamps
【问题讨论】:
标签: dataframe filter dask parquet pyarrow