Удалить определенный столбец из Hive Partitioned внешней таблицы - PullRequest
0 голосов
/ 01 ноября 2018

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

DDL:

CREATE TABLE xyz.test_change (a int, b int, c int);

Команда ALTER:

 ALTER TABLE xyz.test_change REPLACE COLUMNS (a int, b int);

Ошибка:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replacing columns cannot drop columns for table xyz.test_change. SerDe may be incompatible

org.apache.hadoop.hive.ql.metadata.HiveException: Replacing columns cannot drop columns for table xyz.test_change. SerDe may be incompatible

1 Ответ

0 голосов
/ 01 ноября 2018

REPLACE COLUMNS поддерживает замену столбцов только на собственный SerDe (DynamicSerDe, MetadataTypedColumnsetSerDe, LazySimpleSerDe and ColumnarSerDe).

Убедитесь, что в таблице указан один из родных серд, как определено выше.

Подробнее см. Здесь: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Add/ReplaceColumns

...