我有一个带有100个分区的dask数据框(将100个json文件聚合在一起,大约45GB)。我想用15到20列左右的.sum()。compute()计算一些指标。对于每个.compute(),都需要很长时间。是否有更好的方法来并行执行所有这些sum()。compute()?
答案 0 :(得分:0)
是的,有更好的方法!
简单地,对您想要的每件事做.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()