Динамическое разбиение Hive не в состоянии записать окончательные файлы

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

Например, операторы создания таблицы (упрощенные и измененные для понимания):

CREATE EXTERNAL TABLE `house`(                                     
   `color` string,                                     
   `size` string,                                    
   `owner` string)                                     
PARTITIONED BY (                                   
   `dt` date)

CREATE EXTERNAL TABLE `house_new`(                                   
   `size` string,                                    
   `owner` string)                                     
PARTITIONED BY (                                   
   `dt` date, `color` string)

У меня есть простой запрос вставки, как это:

INSERT OVERWRITE TABLE `house_new` PARTITION (`dt`='2018-06-10’, `color`)
SELECT
   `size`,                                      
   `owner`,                                     
   `color`
FROM house
WHERE `dt`='2018-06-10';

Таким образом, он работает до конца и говорит, что работа была успешно завершена как в терминале, так и в интерфейсе Tez. Даже в течение всего процесса я вижу файлы, которые фактически заполняются в папках tmp/staging на S3 со всеми правильными разделами. Однако, когда он, наконец, заканчивается, файлы фактически не записываются и все временные файлы удаляются.

Работает жесткое кодирование разделов (статическое разделение), а также динамическое разделение от таблицы с 1 разделенным столбцом до другой таблицы с 1 разделенным столбцом. Переход из таблицы с 1 разделенным столбцом и попытка извлечь 2-й раздел из 1-й таблицы не работает.

0 ответов

Другие вопросы по тегам