我在不同目录中有多个实木复合地板文件
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 dir0
。 dir0
包含文件夹的名称
从中读取paths
中的每个路径。
读取paths
中的每个文件都没有dir0
列。
如何避免自动向我的dir0
添加ddf
?
答案 0 :(得分:2)
这是fastparquet后端的预期行为,因为看起来文件是按文件夹名称分区的,在这种情况下使用“钻”方案(与field=value
目录名称相对)。
为避免这种情况,您可以使用pyarrow引擎,或仅指定要保留的列:
ddf = dd.read_parquet(paths, columns=['A', 'B', 'C'])
ddf = dd.read_parquet(paths, engine='pyarrow')