廣播變數 應用場景:在提交作業後,task在執行的過程中, 有一個或多個值需要在計算的過程中多次從Driver端拿取時,此時會必然會發生大量的網路IO, 這時,最好用廣播變數的方式,將Driver端的變數的值事先廣播到每一個Worker端, 以後再計算過程中只需要從本地拿取該值即可,避免網路IO,提 ...
廣播變數
應用場景:在提交作業後,task在執行的過程中,
有一個或多個值需要在計算的過程中多次從Driver端拿取時,此時會必然會發生大量的網路IO,
這時,最好用廣播變數的方式,將Driver端的變數的值事先廣播到每一個Worker端,
以後再計算過程中只需要從本地拿取該值即可,避免網路IO,提高計算效率。
廣播變數在廣播的時候,將Driver端的變數廣播到每一個每一個Worker端,一個Worker端會收到一份僅一份該變數的值
註意:廣播的值必須是一個確切的值,不能廣播RDD(因為RDD是一個數據的描述,沒有拿到確切的值),
如果想要廣播RDD對應的值,需要將該RDD對應的數據獲取到Driver端然後再進行廣播。
廣播的數據是不可改變的。
廣播變數的數據不可太大,如果太大,會在Executor占用大量的緩存,相對於計算的時候的緩存就少很多。