gpt4 book ai didi

python - Dask 计算非常慢

转载 作者:行者123 更新时间:2023-11-28 17:03:35 30 4
gpt4 key购买 nike

我有一个包含 500 万条记录的数据框。我正在尝试通过利用 python 中的 dask 数据帧使用以下代码处理它

 import dask.dataframe as dd                                          
dask_df = dd.read_csv(fullPath)
............
for index , row in uniqueURLs.iterrows():
print(index);
results = dask_df[dask_df['URL'] == row['URL']]
count = results.size.compute();

但我注意到 dask 在过滤数据帧方面非常有效,但在 .compute() 中则不然。因此,如果我删除了计算结果大小的行,我的程序就会变得非常快。有人可以解释一下吗?我怎样才能让它更快?

最佳答案

But I noticed that dask is very efficient in filtering dataframes BUT NOT in .compute().

您误解了 dask.dataframe 的工作原理。 results = dask_df[dask_df['URL'] == row['URL']] 行对数据集执行无计算。它仅存储有关可在稍后触发的计算的指令。

所有计算仅适用于 count = results.size.compute() 行。这完全是意料之中的,因为 dask 是懒惰的。

考虑一个生成器和一个可以耗尽生成器的函数,例如 list。生成器本身是惰性的,但会在被函数调用时触发操作。 dask.dataframe 也是惰性的,但通过形成顺序操作的内部“链”来巧妙地工作。

你应该看到 Laziness and Computing从文档中获取更多信息。

关于python - Dask 计算非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687833/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com