Запись данных из Hive в Amazon S3 при сохранении структуры каталогов табличных разделов - PullRequest
0 голосов
/ 27 февраля 2019

Скажем, у меня есть таблица в Hive с именем T1.Он разделен на столбец dt, который является полем даты.В метасольве улья структура каталогов имеет папку с именем таблицы T1 с подкаталогами внутри - по одной папке на каждую дату.

Моя цель - скопировать данные таблицы в Amazon S3, сохраняя при этомструктура каталогов.Если я пытаюсь записать содержимое таблицы непосредственно в файл S3 следующим образом, выходные данные записываются в виде одного файла и структура каталога теряется:

INSERT OVERWRITE DIRECTORY "s3://<DESTINATION>" SELECT * FROM T1;

В качестве альтернативы, если я пытаюсь скопировать каталог из HIVE-Метаторе напрямую на s3 с помощью команды, каталог полностью копируется на S3, но базовые файлы больше не разделяются запятыми ... вместо этого это нечитаемый символ:

s3-dist-cp --src=hdfs://<directory location> --dest=s3://<destination>

Может кто-нибудь мне помочьвыполнить это?Любые предложения или альтернативы?

1 Ответ

0 голосов
/ 27 февраля 2019

Возможным решением является создание таблицы с той же схемой и установка местоположения в нужное место, а затем загрузка данных с использованием Hive и динамического разбиения:

create table T2 like T1;

Alter table T2 set location = 'your destination location';

set hive.exec.dynamic.partition=true; 
set hive.exec.dynamic.partition.mode=nonstrict;

Insert overwrite table T2 partition (dt)
select * from T1
distribute by dt;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...