【Spark】SparkOptimizer 优化:OptimizeIn(In to InSet)

最近在调试Spark-SQL的时候看了一个OptimizeIn优化规则,该规则做了两个事情:

  1. 去除In中重复的Literal条件;
  2. 如果In中Literal条件数目大于optimizerInSetConversionThreshold(默认值为10),做In到InSet的表达式转换。

在做DataSource扩展filter pushdown的时候要注意处理这种优化。

源码如下:

  • 【Spark】SparkOptimizer 优化:OptimizeIn(In to InSet)_第1张图片
    image.png

    实例:

  • image.png

你可能感兴趣的:(【Spark】SparkOptimizer 优化:OptimizeIn(In to InSet))