我有 33 个多分区数据帧。都有自己的元数据。它们都是用 fastparquet 制成的。结构看起来像:
- 20190101.parquet
- _common_metadata
- _metadata
- part.0.parquet
- ....
- part.n.parquet
- 20190102.parquet
- _common_metadata
- _metadata
- part.0.parquet
- ....
- part.n.parquet
- 20190103.parquet
- _common_metadata
- _metadata
- part.0.parquet
- ....
- part.n.parquet
我想把这些都加入到一起。
我目前有:
dfs = []
for date in dates:
df = dd.read_parquet(f'{date}.parquet', engine='fastparquet')
dfs.append(df)
df = dd.concat(dfs)
这将返回一个名为“concat”的 dask 数据帧,其中包含 129,294 个任务。
然后我试图把这个写出来:
df.to_parquet('out.parquet', engine='fastparquet')
这最后一个电话永远不会开始工作。即: * 我的笔记本单元正在运行 * dask 系统页面显示越来越多的文件描述符,然后变平 * dask 系统页面显示内存增加,然后仍然增加但速度更慢 * 但任务未出现在任务流中
我已经等了1个小时。
(在 dask 2.3.0 上运行)