2016-12-01 90 views
1

试图将列添加到HIVE中的外部表,但是获取下面的错误。该表目前已注册了一千个分区,我希望避免重新创建表格,然后运行需要很长时间才能完成的MSCK REPAIR。此外,该表使用OpenCSVSerde格式。如何添加一列将列添加到Hive外部表错误

hive> ALTER TABLE schema.Table123 ADD COLUMNS (Column1000 STRING); 

    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. java.lang.IllegalArgumentException: Error: type expected at the position 0 of '<derived from deserializer>' but '<' is found. 
+0

蜂巢改变语句不支持SCHEMA_NAME.TABLE_NAME。 @Rijul提到你分别使用它们。 –

+0

不起作用,仍然得到相同的错误。不确定这是否与OpenCSVSerde有关? – user3250672

回答

-1

试试这个:

Use your_database_name; 

则:

ALTER TABLE Table123 ADD COLUMNS (Column1000 STRING); 
+0

为什么这和我的例子有什么不同? – user3250672

+0

您被给出了错误的语法:检查此https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Add%2FReplaceColumns –

+0

语法正确 –