Эффективно объединить большие паркетные файлы - PullRequest
0 голосов
/ 11 мая 2018

Я использую паркетные инструменты для объединения паркетных файлов.Но, похоже, что инструментам для работы с паркетами необходим объем памяти, равный объему объединенного файла.Есть ли у нас другие способы или настраиваемые параметры в инструментах для работы с паркетами для более эффективного использования памяти?Потому что я запустил задание слияния как задание карты в hadoop env.И контейнер уничтожается каждый раз, потому что он использует больше памяти, чем ему предоставляется.

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Я бы не рекомендовал использовать инструменты паркетного слияния, поскольку он просто размещает группы строк одну за другой, поэтому у вас все еще будут небольшие группы, просто собранные вместе в один файл. Полученный файл обычно не будет заметно лучше работать, и при определенных обстоятельствах он может работать даже хуже, чем отдельные файлы. Подробнее см. PARQUET-1115 .

В настоящее время единственный правильный способ объединения файлов Parquet - это прочитать все данные из них и записать их в новый файл Parquet. Это можно сделать с помощью задания MapReduce (для этого требуется написать собственный код) или с помощью Spark, Hive или Impala.

Обновление: PARQUET-1381 добавлен переключатель командной строки в parquet-tools merge для объединения групп строк.

...