spark catalyst:http://www.jasongj.com/spark/rbo/ (这篇文章介绍的非常详细)
注意点:谓词下推并不是所有时候都生效spark(五):catalyst以及
这里的意思是filter的字段必须是确定性的(deterministic),也就是说如果对字段加了lower等内置函数,则此字段就变成非确定性的了,此时谓词下推就不会生效。

spark数据倾斜

  1. 一般情况,加大shuffle时的partiton个数(spark.sql.shuffle.partitions)
  2. 对于join的情况,如果join的一方足够小,可被加载进Driver并通过Broadcast方法广播到各个Executor中(spark.sql.autoBroadcastJoinThreshold)。
  3. 随机前缀
  4. http://www.jasongj.com/spark/skew/