本文概述
- 广播变量
- 累加器
广播变量 广播变量支持在每台计算机上缓存的只读变量, 而不是提供带有任务的副本。 Spark使用广播算法来分发广播变量, 以降低通信成本。
火花动作的执行经过多个阶段, 由分布式“随机”操作分隔。 Spark自动广播每个阶段中任务所需的通用数据。在运行每个任务之前, 以这种方式广播的数据以序列化形式缓存并反序列化。
要创建广播变量(假设为v), 请调用SparkContext.broadcast(v)。让我们看一个例子。
scala>
val v = sc.broadcast(Array(1, 2, 3))scala>
v.value
文章图片
累加器 累加器是用于执行关联和交换操作的变量, 例如计数器或总和。 Spark为数字类型的累加器提供支持。但是, 我们可以添加对新类型的支持。
【RDD共享变量】要创建数字累加器, 请调用SparkContext.longAccumulator()或SparkContext.doubleAccumulator()来累加Long或Double类型的值。
scala>
val a=sc.longAccumulator("Accumulator")scala>
sc.parallelize(Array(2, 5)).foreach(x=>
a.add(x))scala>
a.value
文章图片
推荐阅读
- RDD持久性
- RDD操作
- 什么是ASD()
- 什么是Apache Spark()
- Apache Spark安装
- Apache Spark组件
- Spark Char Count示例
- Spark架构
- Mac的6款最佳视频编辑软件列表(包括 M1 Mac)