Разные планы объяснения для одной и той же операции Spark - PullRequest
0 голосов
/ 18 октября 2018

Я сталкиваюсь с ситуацией, когда я получаю разные объяснения, объясняет планы для одной и той же операции на одном и том же кадре данных в моем коде спарк.

Я понимаю, что это потому, что спарк делает несколько итераций над кодом ипопробуйте оптимизировать код различными способами, и количество его повторений определяется параметром spark.sql.optimizer.maxIterations.

. Моя проблема в том, что я хочу выполнить очень сложную операцию, а оптимизатор выполняет ее.иногда очень хорошая работа и иногда довольно плохая, и это приводит к почти 30% -ной разнице в производительности между запросами, работающими с одним и тем же набором данных.

Учитывая это, мой вопрос:

  1. Можно ли как-нибудь заморозить план объяснения для операции?
  2. Увеличение spark.sql.optimizer.maxIterations до 500, похоже, тоже не исправит.Этот параметр вообще используется?
  3. Есть ли другой выход из этого?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...