Hadoop教程
HBase
Hive
Pig
Sqoop
Spark

RDD共享变量

在Spark中,当任何函数传递给转换操作时,它将在远程集群节点上执行。它适用于函数中使用的所有变量的不同副本。这些变量将复制到每台计算机,并且对远程计算机上的变量的任何更新都不会还原到驱动程序。

广播变量

广播变量支持在每台计算机上缓存的只读变量,而不是为其提供任务副本。 Spark使用广播算法来分发广播变量,以降低通信成本。
Spark动作的执行经历了多个阶段,由分布式"随机播放"操作隔开。 Spark自动广播每个阶段中任务所需的通用数据。以这种方式广播的数据将以序列化形式缓存并反序列化,然后再运行每个任务。
要创建广播变量(比如说v),请调用SparkContext.broadcast(v)。让我们看一个例子。
scala> val v = sc.broadcast(Array(1, 2, 3))
scala> v.value
RDD共享变量

累加器

累加器是用于执行关联和交换操作(例如计数器或总和)的变量。 Spark为数字类型的累加器提供支持。但是,我们可以添加对新类型的支持。
要创建数字累加器,请调用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共享变量
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4