Какая операция быстрее: filter или withColumn, когда? - PullRequest
0 голосов
/ 03 сентября 2018

Какой из них более производительный?

  1. filter подход

    val df1 = df
      .filter('operation === true)
      .withColumn("operation2", lit(null))
    
  2. withColumn / when подход

    val df2 = df.withColumn('operation2, when('operation === true, null))
    

1 Ответ

0 голосов
/ 03 сентября 2018

Если оставить в стороне количество строк в выводе (они могут отличаться), я уверен, что производительность будет одинаковой (или очень сопоставимой). Причина в том, что между этапами и задачами нет взаимозависимости, поэтому вычисления выполняются как можно более параллельно. Оба они рассчитаны только на карту.

Чтобы лучше понять этот и другие структурированные запросы, используйте explain или просто веб-интерфейс для просмотра (и сравнения) физических планов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...