Как переименовать все столбцы разделов в улье

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

hive> ALTER TABLE test.usage PARTITION ('date') RENAME TO PARTITION (partition_date);

FAILED: ValidationFailureSemanticException Partition spec {partition_date=null} contains non-partition columns.

Я получил этот синтаксис отсюда: 1


person hadoop    schedule 14.02.2017    source источник
comment
не могли бы вы сказать мне, что выводит эта команда: › show create table test.usage; Также было бы полезно, если бы вы могли сообщить, какую версию Hive вы используете, в Hive 0.13 есть проблема с переименованием разделов.   -  person dbustosp    schedule 14.02.2017
comment
См. это: stackoverflow.com/questions/32111036/   -  person dbustosp    schedule 15.02.2017


Ответы (1)


Учитывая, что я не уверен на 100%, хотите ли вы переименовать значение раздела или фактически изменить столбец, на который разделена таблица.

Предположим, вы хотите переименовать значение раздела.

В Hive 0.13 есть проблема, а в Hive 0.14 все работает нормально. В любом случае, это должно работать:

set fs.hdfs.impl.disable.cache=false; 
set fs.file.impl.disable.cache=false; 

Теперь запустите запрос, установив это свойство.

> hive> set fs.hdfs.impl.disable.cache=false;  
> hive> set fs.file.impl.disable.cache=false;
> hive> ALTER TABLE test.usage PARTITION (date='oldValue') RENAME TO PARTITION (date='newValue');

Предположим, вы хотите изменить столбец раздела

В этом случае вам нужно будет воссоздать таблицу, изменив столбец, на который будет разделена таблица.

Примечание. Помните, что если у вас уже были данные внутри разделов, вам нужно будет повторно вставить данные.

См. также этот ответ

person dbustosp    schedule 14.02.2017
comment
Спасибо!! На самом деле я ищу изменение столбца раздела, и это помогает. - person hadoop; 15.02.2017