gpt4 book ai didi

python - 为什么 compute() 方法对于 Dask 数据帧很慢,而 head() 方法很快?

转载 作者:行者123 更新时间:2023-12-04 09:34:18 24 4
gpt4 key购买 nike

因此,在处理大数据方面,我是个新手。我正在处理一个 60GB 的 CSV 文件,所以我决定尝试一下 Dask,因为它会生成 pandas 数据帧。这可能是一个愚蠢的问题,但请耐心等待,我只需要朝着正确的方向稍微插入一下......

所以我明白为什么使用“计算”​​方法的以下查询会很慢(惰性计算):

df.loc[1:5 ,'enaging_user_following_count'].compute()

顺便说一句,计算需要 10 分钟。

但我不明白的是为什么以下代码使用“head”方法在不到两秒内打印输出(即,在这种情况下,我要求 250 行,而前面的代码片段只是5 行):

df.loc[50:300 , 'enaging_user_following_count'].head(250)

为什么“head”方法不用很长时间?我觉得我在这里遗漏了一些东西,因为与使用“计算”​​方法相比,我能够在更短的时间内提取大量行。还是在其他情况下使用的计算方法?

注意:我试图阅读文档,但没有解释为什么 head() 很快。

最佳答案

半年前我就玩过这个。 .head() 不会检查所有分区,而只是检查第一个分区。没有同步开销等,所以速度非常快,但没有考虑整个数据集。

你可以试试

df.loc[-251: , 'enaging_user_following_count'].head(250)

IIRC 你应该得到第一个分区的最后 250 个条目而不是实际的最后索引。

如果你尝试类似的东西

df.loc[conditionThatIsOnlyFulfilledOnPartition3 , 'enaging_user_following_count'].head(250)

您收到 head 找不到 250 个样本的错误。

如果您实际上只想要前几个条目,但是它非常快:)

关于python - 为什么 compute() 方法对于 Dask 数据帧很慢,而 head() 方法很快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62668802/

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