Какова лучшая практика группового использования в Spark SQL? - PullRequest
0 голосов
/ 10 марта 2019

У меня есть Spark SQL, который группирует несколько столбцов.Мне было интересно, имеет ли значение порядок столбцов для производительности запроса.

Помогает ли размещение столбца с более различными значениями ранее?Я предполагаю, что groupby основан на некотором алгоритме хеширования / перемешивания.Если первый groupby может распределять данные по небольшим подмножествам, которые могут храниться на одном компьютере, последующие groupbys могут выполняться локально.Это правда?

Какова лучшая практика групповой игры?

1 Ответ

2 голосов
/ 10 марта 2019

group by, как вы и предполагали, использует хеш-функцию для столбцов, чтобы решить, какой набор групп по ключам окажется в каком разделе.Вы можете использовать distribute by, чтобы указать спарку, какие столбцы использовать - https://docs.databricks.com/spark/latest/spark-sql/language-manual/select.html

Как и для любых других манипуляций с данными (например, более ранних значений), учтите, что если в выражениях 2 group byВаш запрос, в итоге вы получите 2 шаффла.И результат первого, очевидно, довольно большой (так как это не окончательная агрегация).Поэтому я постараюсь сделать как можно меньше group by заявлений.

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