spark catalyst:http://www.jasongj.com/spark/rbo/ (這篇文章介紹的非常詳細)
注意點:謂詞下推並不是所有時候都生效
這裏的意思是filter的字段必須是確定性的(deterministic),也就是說如果對字段加了lower等內置函數,則此字段就變成非確定性的了,此時謂詞下推就不會生效。
spark數據傾斜
- 一般情況,加大shuffle時的partiton個數(spark.sql.shuffle.partitions)
- 對於join的情況,如果join的一方足夠小,可被加載進Driver並通過Broadcast方法廣播到各個Executor中(spark.sql.autoBroadcastJoinThreshold)。
- 隨機前綴
- http://www.jasongj.com/spark/skew/