Как я могу контролировать количество выходных файлов из запроса Spark SQL? - PullRequest
0 голосов
/ 08 января 2020

Создание таблицы из Spark SQL SELECT, мы в итоге генерируем слишком много файлов. Как мы можем ограничить их?

1 Ответ

0 голосов
/ 08 января 2020

Начиная с версии 2.4, вы можете подсказать запрос для управления выводом:

INSERT ... SELECT /*+ COALESCE(numPartitions) */ ...
INSERT ... SELECT /*+ REPARTITION(numPartitions) */ ...

Например, это сгенерирует 5 файлов:

CREATE TABLE business.clients
AS 
SELECT /*+ REPARTITION(5) */
       client_id,
       country,
       wallet
FROM business.users;

До Spark 2.4, способ было бы ограничить количество разделов для всего запроса:

SET spark.sql.shuffle.partitions = 5;

Но это потенциально может повлиять на производительность процесса.

Дополнительная информация здесь https://issues.apache.org/jira/browse/SPARK-24940

...