Spark 外部變數和BroadCast變數的區別

冰血_ang發表於2020-10-05

spark裡面運算元裡面使用外部變數和BroadCast變數的區別:

1、如果在運算元裡面使用外部變數,spark會將外部變數複製多個副本,通過網路傳輸到每一個task裡面去(也就是說,此時的外部變數是task級別的)

2、BroadCast變數,使用spark的廣播功能進行廣播,廣播之後保障每個executor裡面只駐留一份變數,而同一個Executor中的task共享這一份變數(也即是說,BroadCast的變數是Executor級別的)

很顯然,第二種方式是更能節省網路資源和記憶體資源的。

相關文章