【发布时间】:2019-06-20 22:57:11
【问题描述】:
前几天我和一位同事讨论,他随便提到,除了内存计算之外,Scala 中的闭包是在 Spark 上执行应用程序如此高效的原因。我确实在官方 spark 文档中找到了以下文本,但不太明白。
为了执行作业,Spark 将 RDD 操作的处理分解为任务,每个任务由一个 executor 执行。在执行之前,Spark 会计算任务的闭包。闭包是那些必须对执行程序可见的变量和方法才能在 RDD 上执行计算(在本例中为
foreach())。这个闭包被序列化并发送到每个执行器。
任何帮助(指向其他网络链接、解释、任何参考)都受到高度重视。
【问题讨论】:
标签: scala apache-spark closures