spark的廣播變量

廣播變量:頻繁使用 而且數據大 分發到每一個excutor節點 每個task從本地拿取使用

當在excutor端使用了Driver變量,不使用廣播變量,在每個excutor中有多少的task就有多少個Driver端變量副本
導致的問題:佔用了網絡IO,速度慢
如果使用廣播變量在每一個excutor端只有一份Driver端的變量副本
注意:
1).不能當RDD廣播出去,可以將RDD的結果廣播出去
2).廣播變量在Driver定義,在Excutor端不可改變,在Excutor端不能定義

       ```
       val conf: SparkConf = new SparkConf().setAppName("DataProcessLauncher").setMaster("local[2]")
       val sc = new SparkContext(conf)
       val conf: SparkConf = new SparkConf().setAppName("DataProcessLauncher").setMaster("local[2]")
val sc = new SparkContext(conf)
@volatile var filterRuleRef: Broadcast[ArrayBuffer[String]] = sc.broadcast(filterRuleList)
       ```
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章