Hive — заменить столбцы в таблице ORC

У меня есть таблица кустов, сохраненная в файлах ORC, это определение в команде «создать»:

ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'

Я хочу удалить столбец с конца, поэтому я попробовал команду «Изменить таблицу - заменить столбцы», где я не написал имя столбца, но получил эту ошибку: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replacing columns cannot drop columns for table default.table. SerDe may be incompatible

Есть ли способ заменить столбцы в таблице ORC в Hive? Гугл подвел меня в этом вопросе....

Спасибо!


person Bramat    schedule 22.10.2017    source источник


Ответы (1)


Согласно учебнику по кустам, команду REPLACE COLUMNS можно выполнить только для таблиц с собственным SerDe (DynamicSerDe, MetadataTypedColumnsetSerDe, LazySimpleSerDe и ColumnarSerDe).

Итак, для вашего случая создайте новую таблицу с требуемым столбцом. вставить в новую таблицу из старой таблицы. Переименовать старую таблицу в другую таблицу. Переименовать новую таблицу в старую.

Спасибо.

person Ayyachamy    schedule 23.10.2017