gpt4 book ai didi

Scala 聚合函数与 Spark RDD 聚合函数

转载 作者:行者123 更新时间:2023-12-05 06:54:31 26 4
gpt4 key购买 nike

函数定义如下:

斯卡拉:

aggregate[B](z: => B)(seqop: (B, A) => B, combop: (B, B) => B): B

Spark RDD:

aggregate[B](z: B)(seqop: (B, A) => B, combop: (B, B) => B): B

我知道 Scala 聚合函数设计用于并行集合,而 Spark RDD 聚合函数设计用于分布式集合。

但是,为什么z参数在Scala中是lazy格式,而在Spark RDD中是eager格式?

最佳答案

首先,这是 Scala 中的一个按名称调用 参数。这意味着它们每次被使用时都会被评估,这与 lazy 不同,后者只在第一次使用时评估一次,所有后续调用都使用该结果。 ( https://docs.scala-lang.org/tour/by-name-parameters.html )

因此 spark 依赖于分布式 数据集,这意味着可以在多个节点上进行计算。而且我认为他们选择让零元素成为按值调用参数(您称之为“渴望”),以避免必须在完成此计算的每个节点上重新计算它。

关于Scala 聚合函数与 Spark RDD 聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65521674/

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