我有一个保存在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'
我想从最后删除一列,所以我尝试了#34; Alter Table - Replace Columns"命令,我没有写出列名 - 但是出现了这个错误:
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
有没有办法替换Hive中ORC表中的列? 谷歌在这个问题上让我失望了....
谢谢!
答案 0 :(得分:0)
根据hive教程,REPLACE COLUMNS命令只能用于具有本机SerDe(DynamicSerDe,MetadataTypedColumnsetSerDe,LazySimpleSerDe和ColumnarSerDe)的表。
所以对你的情况来说, 创建一个包含必需列的新表。 从旧表插入新表。 将旧表重命名为其他表。 将新表重命名为旧表。
感谢。