Apache spark 同一火花操作的不同解释方案

Apache spark 同一火花操作的不同解释方案,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我正面临着这样一种情况,在我的spark代码中,对于完全相同的数据帧上的完全相同的操作,我得到了不同的计划 我理解这是因为spark对代码进行多次迭代,并尝试以不同的方式优化代码,其迭代次数由参数spark.sql.optimizer.maxIterations定义 我的问题是,我希望执行一个非常繁重的操作,优化器有时做得很好,有时做得很差,这导致在同一数据集上工作的查询之间的性能相差近30% 有鉴于此,我的问题是 是否有可能冻结spark中某个操作的解释计划 将spark.sql.optimi

我正面临着这样一种情况,在我的spark代码中,对于完全相同的数据帧上的完全相同的操作,我得到了不同的计划

我理解这是因为spark对代码进行多次迭代,并尝试以不同的方式优化代码,其迭代次数由参数
spark.sql.optimizer.maxIterations
定义

我的问题是,我希望执行一个非常繁重的操作,优化器有时做得很好,有时做得很差,这导致在同一数据集上工作的查询之间的性能相差近30%

有鉴于此,我的问题是

  • 是否有可能冻结spark中某个操作的解释计划
  • spark.sql.optimizer.maxIterations
    增加到500似乎也无法解决这一问题。是否使用了此参数
  • 还有别的办法吗