Spark читает все записи, когда я пытаюсь найти максимальное поле раздела - PullRequest
0 голосов
/ 20 марта 2020

Я думаю, что не понимаю искры. У меня есть таблица, разделенная на «partition_date», может быть, около 10 разделов, но с большим количеством записей внутри каждого.

Когда я пытаюсь найти максимум этого поля, почему спарк оценивает все записи в таблице, если знает, что это поле раздела. Интуитивно понятно, что он только оценит эти 10 строк поля раздела и вернет максимум.

Я сделал быстрый подход с использованием 'show partitions', но меня интересует это поведение,

Большое спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Разделы - это порции данных (не данных), и искровой запрос выполняется для данных.

Spark будет использовать partition_date для создания partitions и distribute данные в эти partitions соответственно. Он не будет запрашивать partitions, но данные в этих разделах, поэтому запрос max будет выполняться для фактических данных.

...