廣播變數
應用場景:在提交作業後,task在執行的過程中,
有乙個或多個值需要在計算的過程中多次從driver端拿取時,此時會必然會發生大量的網路io,
這時,最好用廣播變數的方式,將driver端的變數的值事先廣播到每乙個worker端,
以後再計算過程中只需要從本地拿取該值即可,避免網路io,提高計算效率。
廣播變數在廣播的時候,將driver端的變數廣播到每乙個每乙個worker端,乙個worker端會收到乙份僅乙份該變數的值
注意:廣播的值必須是乙個確切的值,不能廣播rdd(因為rdd是乙個資料的描述,沒有拿到確切的值),
如果想要廣播rdd對應的值,需要將該rdd對應的資料獲取到driver端然後再進行廣播。
廣播的資料是不可改變的。
廣播變數的資料不可太大,如果太大,會在executor占用大量的快取,相對於計算的時候的快取就少很多。
spark中的廣播變數broadcast
首先先來看一看broadcast的使用 val values list int 1,2,3 val broadcastvalues sparkcontext.broadcast values broadcastvalues.getvalue.foreach println 在上面的 中,首先生成了乙...
spark中的廣播變數broadcast
首先先來看一看broadcast的使用 val values list int 1,2,3 val broadcastvalues sparkcontext.broadcast values broadcastvalues.getvalue.foreach println 在上面的 中,首先生成了乙...
Spark廣播變數Broadcast
spark廣播變數的目的是讓每個worker節點在記憶體中儲存乙個唯讀的物件,節省了在每次tasks建立傳送到woker節點中攜帶該物件副本的網路io。一些需要在多個task中使用的,不可變的大資料集合物件尤其適合被定義程廣播變數。廣播變數的定義方法,fron spark官網 val broadca...