Отключить оптимизатор искрового катализатора - PullRequest
0 голосов
/ 10 мая 2018

Чтобы подвести итог, я пытаюсь запустить тест TPCDS для Spark с оптимизатором катализатора Spark и без него. Для сложных запросов к меньшим наборам данных мы могли бы тратить больше времени на оптимизацию планов, чем на их выполнение. Следовательно, хотелось бы измерить влияние оптимизаторов на производительность при общем выполнении запроса

Есть ли способ отключить некоторые или все правила оптимизации искрового катализатора?

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Эта способность была добавлена ​​как часть Spark-2.4.0 в SPARK-24802 .

val OPTIMIZER_EXCLUDED_RULES = buildConf("spark.sql.optimizer.excludedRules")
    .doc("Configures a list of rules to be disabled in the optimizer, in which the rules are " +
      "specified by their rule names and separated by comma. It is not guaranteed that all the " +
      "rules in this configuration will eventually be excluded, as some rules are necessary " +
      "for correctness. The optimizer will log the rules that have indeed been excluded.")
    .stringConf
    .createOptional

Вы можете найти список правил оптимизатора здесь .
Но в идеале мы не должны отключать правила, так как большинство из них обеспечивают повышение производительности. Мы должны определить правило, которое потребляет время, и проверить, не является ли оно полезным для запроса, а затем отключить их.

0 голосов
/ 10 мая 2018

Вы должны отключить конфигурацию с помощью

sparkSession.conf.set("spark.sql.cbo.enabled",false)

или

--conf spark.sql.cbo.enabled=false

во время запуска спарк-отправки

...