广播变量与累加器
广播变量
# 1.将本地list标记为广播变量即可 boardcast=sc.broadcast(list) # 2.使用广播变量的时候从中取出list对象即可 value=boardcast.value # 即通过boardcast这个中间传输对象,就会是只是每个excutor发一份了
场景:本地集合对象和RDD进行关联的时候,需要进行封装。
优点:节省网络IO,excutor内存
累加器
分布式场景下,driver的count与excutor的count互不干扰,因为两个count本来就属于不同的服务端。举例来说:map10个元素分2个区,2个excutor的count分别为5,而driver的count是0
如果需要积累计算,就需要用到spark提供的累加器功能
# spark提供的累加器,初始值为参数 acmlt=sc.accumulator(0)

浙公网安备 33010602011771号