RDD 共享变量2025 年 3 月 17 日 | 阅读 1 分钟 在 Spark 中,当任何函数传递给转换操作时,它将在远程集群节点上执行。它处理函数中使用所有变量的不同副本。 这些变量被复制到每台机器,并且对远程机器上的变量的任何更新都不会恢复到驱动程序程序。 广播变量广播变量支持缓存在每台机器上的只读变量,而不是为任务提供它的副本。 Spark 使用广播算法来分配广播变量,以降低通信成本。 Spark 操作的执行会经过几个阶段,这些阶段由分布式的“shuffle”操作分隔。 Spark 自动广播每个阶段中任务所需的公共数据。 以这种方式广播的数据以序列化形式缓存,并在运行每个任务之前反序列化。 要创建广播变量(假设为 v),请调用 SparkContext.broadcast(v)。 让我们通过一个例子来理解。 ![]() 累加器累加器是用于执行关联和交换运算的变量,例如计数器或求和。 Spark 提供对数字类型累加器的支持。 但是,我们可以添加对新类型的支持。 要创建数字累加器,请调用 SparkContext.longAccumulator() 或 SparkContext.doubleAccumulator() 来累积 Long 或 Double 类型的值。 ![]() 下一个主题Spark Map 函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。