hive-replace orc表中的列

5f0d552i  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(1039)

我在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表中的列?谷歌在这个问题上让我失望了。。。。
谢谢!

ryhaxcpt

ryhaxcpt1#

根据配置单元教程,replace columns命令只能对具有本机serde(dynamicserde、metadatatypedcolumnsetserde、lazysimpleserde和columnarserde)的表执行。
因此,对于您的情况,请创建一个包含必需列的新表。从旧表插入新表。将旧表重命名为其他表。将新表重命名为旧表。
谢谢。

相关问题