如何使用时间戳过滤 dask.dataframe.read_parquet?
How do I filter dask.dataframe.read_parquet with timestamp?
我正在尝试使用 dask.dataframe.read_parquet 方法读取一些镶木地板文件。在数据中,我有一个名为 timestamp
的列,其中包含如下数据:
0 2018-12-20 19:00:00
1 2018-12-20 20:00:00
2 2018-12-20 21:00:00
3 2018-12-20 22:00:00
4 2018-12-20 23:00:00
5 2018-12-21 00:00:00
6 2018-12-21 01:00:00
7 2018-12-21 02:00:00
8 2018-12-21 03:00:00
9 2018-12-21 04:00:00
10 2018-12-21 05:00:00
11 2018-12-21 06:00:00
12 2018-12-21 07:00:00
13 2018-12-21 08:00:00
14 2018-12-21 09:00:00
15 2018-12-21 10:00:00
16 2018-12-21 11:00:00
17 2018-12-21 12:00:00
18 2018-12-21 13:00:00
19 2018-12-21 14:00:00
20 2018-12-21 15:00:00
我想根据时间戳和 return 过滤过去 10 天内的数据。我该怎么做?
我试过类似的方法:
filter_timestamp_days = pd.Timestamp(datetime.today() - timedelta(days=days))
filters = [('timestamp', '>', filter_timestamp_days)]
df = dask_df.read_parquet(DATA_DIR, engine='pyarrow', filters=filters)
但我收到错误消息:
TypeError: Cannot compare type 'Timestamp' with type 'bytes_'
原来问题出在我使用的数据源上。我测试了最初用 dask 编写的不同数据源,它的工作原理如下:
filter_timestamp_days = pd.Timestamp(datetime.today() - timedelta(days=days))
filters = [('timestamp', '>', filter_timestamp_days)]
df = dask_df.read_parquet(DATA_DIR, engine='fastparquet', filters=filters)
我不需要进一步转换 filter_timestamp_days
。以前的数据源是用 Scala 客户端编写的,似乎元数据在 dask 中不可读。
感谢大家的贡献。
我正在尝试使用 dask.dataframe.read_parquet 方法读取一些镶木地板文件。在数据中,我有一个名为 timestamp
的列,其中包含如下数据:
0 2018-12-20 19:00:00
1 2018-12-20 20:00:00
2 2018-12-20 21:00:00
3 2018-12-20 22:00:00
4 2018-12-20 23:00:00
5 2018-12-21 00:00:00
6 2018-12-21 01:00:00
7 2018-12-21 02:00:00
8 2018-12-21 03:00:00
9 2018-12-21 04:00:00
10 2018-12-21 05:00:00
11 2018-12-21 06:00:00
12 2018-12-21 07:00:00
13 2018-12-21 08:00:00
14 2018-12-21 09:00:00
15 2018-12-21 10:00:00
16 2018-12-21 11:00:00
17 2018-12-21 12:00:00
18 2018-12-21 13:00:00
19 2018-12-21 14:00:00
20 2018-12-21 15:00:00
我想根据时间戳和 return 过滤过去 10 天内的数据。我该怎么做?
我试过类似的方法:
filter_timestamp_days = pd.Timestamp(datetime.today() - timedelta(days=days))
filters = [('timestamp', '>', filter_timestamp_days)]
df = dask_df.read_parquet(DATA_DIR, engine='pyarrow', filters=filters)
但我收到错误消息:
TypeError: Cannot compare type 'Timestamp' with type 'bytes_'
原来问题出在我使用的数据源上。我测试了最初用 dask 编写的不同数据源,它的工作原理如下:
filter_timestamp_days = pd.Timestamp(datetime.today() - timedelta(days=days))
filters = [('timestamp', '>', filter_timestamp_days)]
df = dask_df.read_parquet(DATA_DIR, engine='fastparquet', filters=filters)
我不需要进一步转换 filter_timestamp_days
。以前的数据源是用 Scala 客户端编写的,似乎元数据在 dask 中不可读。
感谢大家的贡献。