Spark: чтение таблиц и фильтрация по разделам - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь понять оценку Спарк.

Существует таблица table_name, которая разделена на partition_column. Это внешний стол, хранящийся в формате паркета. Теперь рассмотрим следующую строку

val df = spark.read.table(table_name).filter(partition_column=partition_value)

Из-за ленивой оценки Spark она будет применять предикатное нажатие и только сканировать папку, где partition_column = partition_value? Или он собирается прочитать всю таблицу и отфильтровать ее позже?

1 Ответ

1 голос
/ 07 ноября 2019

Попробуйте .explain , чтобы увидеть результат самостоятельно.

Но на паркет действительно наносится толчок.

Преобразования, фильтры, отображение и т. Д. - все они слиты воедино. Ленивый аспект действительно верен, хотя вы сделали все это в одном утверждении.

Итак, ответ - ДА, Spark сгенерирует код для фильтрации в источнике.

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