首页 > 解决方案 > scala 闭包功能是否有助于 Apache spark

问题描述

前几天我在和一位同事讨论,他随便提到,除了内存计算,Scala 中的闭包是在 Spark 上执行应用程序如此高效的原因。我确实在官方 spark 文档中找到了以下文本,但不太明白。

为了执行作业,Spark 将 RDD 操作的处理分解为任务,每个任务都由一个 executor 执行。在执行之前,Spark 会计算任务的闭包。闭包是那些必须对执行程序可见的变量和方法才能在 RDD 上执行其计算(在这种情况下foreach())。这个闭包被序列化并发送给每个执行器。

任何帮助(指向其他网络链接、解释、任何参考资料)都受到高度重视。

标签: scalaapache-sparkclosures

解决方案


“计算任务关闭”并将其发送给每个执行者背后的想法是大数据的前提之一,即将计算发送到数据所在的位置而不是将数据发送到计算中更快/更容易


推荐阅读