我在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'
我想从末尾删除一列,所以我尝试了“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
有没有办法替换配置单元中orc表中的列?谷歌在这个问题上让我失望了。。。。
谢谢!
1条答案
按热度按时间ryhaxcpt1#
根据配置单元教程,replace columns命令只能对具有本机serde(dynamicserde、metadatatypedcolumnsetserde、lazysimpleserde和columnarserde)的表执行。
因此,对于您的情况,请创建一个包含必需列的新表。从旧表插入新表。将旧表重命名为其他表。将新表重命名为旧表。
谢谢。