我有一个带有100个分区的dask数据帧(将100个json文件聚合在一起,大约45GB)。我想用大约15-20列的.sum()。compute()计算一些指标。对于每个.compute(),它需要很长时间。有没有更好的方法来并行执行所有这些sum()。compute()?
是的,还有更好的方法!
简单地说,在你想要的每件事上做.sum()
- 这会产生要完成的工作的懒惰处方 - 然后将它们的集合传递给dask.compute()
,它将一次完成所有这些,尽可能分享任何中间值。
dask.compute(df.a.sum(), df.b.sum(), df.c.sum(), df.d.sum())
或者,你可以简单地选择你想要的列(df[[col1, col2, ...]]
),然后做一个.sum().compute()
df[['a', 'b', 'c', 'd']].sum().compute()