gpt4 book ai didi

scala - 与take(10)和limit(10).collect()的性能比较

转载 作者:行者123 更新时间:2023-12-01 09:27:21 25 4
gpt4 key购买 nike

我有一个包含数十亿条记录的数据框,我想从中取出10条记录。

哪种方法更快更好?
df.take(10)df.limit(10).collect()

最佳答案

这两种方法都将产生相同的性能,这仅仅是由于的实现与相同。

github上的Spark实现

def take(n: Int): Array[T] = head(n)

而head的实现是:
def head(n: Int): Array[T] = withAction("head", limit(n).queryExecution)(collectFromPlan)

如您所见,head是通过使用 limit + collect完全实现的。

因此,它们会产生相同的性能,您测得的差异必须是随机变化,请尝试运行多次实验以克服它。

关于scala - 与take(10)和limit(10).collect()的性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58263304/

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