4 PySpark——Broadcast&Accumulator
对于并行处理,Apache Spark使用共享变量。 当驱动程序将任务发送到集群上的执行程序时,共享变量的副本将在集群的每个节点上运行,以便可以将其用于执行任务。
Apache Spark支持两种类型的共享变量 - Broadcast 和 Accumulator
Broadcast
广播变量用于跨所有节点保存数据副本。 此变量缓存在所有计算机上,而不是在具有任务的计算机上发送。 以下代码块包含PySpark的Broadcast类的详细信息。
class pyspark.Broadcast (
sc = None,
value = None,
pickle_registry = None,
path = None
)
以下示例显示如何使用Broadcast变量。 Broadcast变量有一个名为value的属性,它存储数据并用于返回广播值。
----------------------------------------broadcast.py--------------------------------------
from pyspark import SparkContext
sc = SparkContext("local", "Broadcast app")
words_new = sc.broadcast(["scala", "java", "hadoop", "spark", "akka"])
data = words_new.value
print("Stored data ->