如何将数据框重新分区为固定大小的分区?

How to repartition a dataframe into fixed sized partitions?

我有一个由延迟函数创建的 dask 数据框,它由随机大小的分区组成。我想将数据帧重新划分为大小(大约)10000 的块。

我可以用 np.ceil(df.size/10000) 计算出正确的分区数,但这似乎可以立即计算出结果?

IIUC 计算结果必须将所有数据帧读入内存,这将是非常低效的。相反,我想将整个操作指定为要提交给分布式调度程序的 dask 图,因此不应在本地进行任何计算。

有没有什么方法可以指定 npartitions 而无需立即计算所有底层延迟函数?

简短的回答可能是 "no, there is no way to do this without looking at the data"。这里的原因是图的结构取决于惰性分区的值。例如,根据您的总数据量,我们将在图中使用不同数量的节点。