Динамическое разбиение 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-й таблицы не работает.