Dask read_parquet添加了一个额外的列dir0

时间:2019-10-30 15:04:19

标签: python dask parquet

我在不同目录中有多个实木复合地板文件

paths = ['adl://entrofi/shift/20190725_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190726_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190727_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190728_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190820_060500_20190920_060500/*.parquet',
'adl://entrofi/shift/20190828_060500_20190928_060500/*.parquet']

每个文件都包含列A,B,C

我想阅读所有这些文件,所以我要做一个

ddf = dd.read_parquet(paths).drop_duplicates()

但是,ddf包含列A,B, C and dir0dir0包含文件夹的名称 从中读取paths中的每个路径。

读取paths中的每个文件都没有dir0列。

如何避免自动向我的dir0添加ddf

1 个答案:

答案 0 :(得分:2)

这是fastparquet后端的预期行为,因为看起来文件是按文件夹名称分区的,在这种情况下使用“钻”方案(与field=value目录名称相对)。

为避免这种情况,您可以使用pyarrow引擎,或仅指定要保留的列:

ddf = dd.read_parquet(paths, columns=['A', 'B', 'C'])
ddf = dd.read_parquet(paths, engine='pyarrow')