spark學習進步之廣播變量的用法(broadcast)

原理:

問題點

1、參數設置:

spark.sql.adaptive.join.enabled

 

AE 相關,開啓後能夠根據數據量自動判斷能否將 sortMergeJoin 轉換成 broadcast join

true

spark.sql.broadcastTimeout

broadcast joins 時,廣播數據最長等待時間,網絡不穩定時,容易出現超時造成任務失敗,可適當增大此參數

 300(單位:s)

spark.sql.autoBroadcastJoinThreshold

 表能夠使用 broadcast join 的最大閾值

 

 20971520(20MB)

2、當廣播變量的表爲1G,但是子查詢之後爲1M,這樣還能廣播出去嗎?(sortMergeJoin 轉換成 broadcast join)

B表爲1G,但是篩選之後爲1M。

答案:不能。

select
    a.id,
    ss.name
from
    A
    left join 
    (
        select
            id,
            name
        from
            B
        where
            id < 100
    ) s 
on a.id = ss.id

驗證一下。抽時間再補上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章