如何指定读取镶嵌到Dask数据帧中的分区数?

时间:2018-03-25 01:41:30

标签: dask dask-delayed

我读了我的镶木地板数据如下:

file_names = glob.glob('./events/*/*/*/*/*/part*.parquet')
pf = fp.ParquetFile(file_names, root='./events')
pf.cats = {'customer': pf.cats['customer']}
dfs = (delayed(pf.read_row_group_file)(rg, pf.columns, pf.cats) for rg in pf.row_groups)
df = dd.from_delayed(dfs)

我无法使用dd.read_parquet,因为我的镶木地板是分区的,我想避免加载一些分类。

我在这里有两个问题:

  • 如何告诉Dask我希望我的数据帧有多少个分区?

  • 默认情况下Dask会创建多少个分区?

1 个答案:

答案 0 :(得分:0)

首先,我怀疑dd.read_parquet函数适用于分区或多文件镶木地板数据集。

其次,如果您使用dd.from_delayed,则每个延迟调用都会产生一个分区。因此,在这种情况下,您拥有与dfs迭代器的元素一样多的分区。如果您想更改此设置,可以在之后调用repartition方法。