Как объединить несколько ORC-файлов (принадлежащих каждому разделу) в ORC-таблице Partitioned Hive в один большой ORC-файл

У меня есть секционированная таблица ORC в Hive. После загрузки таблицы со всеми возможными разделами я получаю в HDFS - несколько файлов ORC, т.е. в каждом каталоге разделов в HDFS есть файл ORC. Мне нужно объединить все эти файлы ORC в каждом разделе в один большой файл ORC для некоторого варианта использования.

Может кто-нибудь предложить мне способ объединить эти несколько файлов ORC (принадлежащих каждому разделу) в один большой файл ORC.

Я попытался создать новую таблицу без разделов ORC из таблицы разделенных.. Это уменьшает количество файлов, но не один файл.

PS: Создание таблицы из другой - полностью задача карты и, следовательно, установка числа редукторов равным 1, используя свойство 'set mapred.reduce.tasks=1;' не помогает

Спасибо

1 ответ

Вы можете использовать CONCATENATE Команда объединить небольшие файлы орков. Это можно сделать как на уровне таблицы, так и на уровне раздела. Синтаксис согласно документации orc:

пользователи могут запросить эффективное объединение небольших ORC-файлов, введя команду CONCATENATE для своей таблицы или раздела. Файлы будут объединены на уровне чередования без повторной сериализации.

ALTER TABLE istari [PARTITION partition_spec] CONCATENATE;
Другие вопросы по тегам