配置单元 - 替换 ORC 表中的列



我有一个保存在ORC文件中的hive表,这是"create"命令中的定义:

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'

我想从末尾删除一列,所以我尝试了"更改表 - 替换列"命令,我没有写列名 - 但收到此错误: 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 表中的列?谷歌在这个问题上让我失望了......

谢谢!

根据hive教程,REPLACE COLUMNS命令只能对具有本机SerDe(DynamicSerDe,MetadataTypedColumnsetSerDe,LazySimpleSerDe和ColumnarSerDe)的表执行。

所以对于你的情况,创建一个包含必填列的新表。从旧表插入到新表中。将旧表重命名为其他表。将新表重命名为旧表。

谢谢。

相关内容

  • 没有找到相关文章

最新更新