从Hive分区外部表中删除特定列

时间:2018-10-31 22:37:49

标签: hive hiveql hive-query

我想从一个巨大的配置单元分区表中删除其中一列。想知道我该怎么做。这是我尝试过的,如下所示。

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 :(得分:0)

REPLACE COLUMNS仅支持使用本机SerDe(DynamicSerDe, MetadataTypedColumnsetSerDe, LazySimpleSerDe and ColumnarSerDe)替换列。

请确保该表具有上面定义的本机Serde之一。

您可以在此处参考更多详细信息:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Add/ReplaceColumns