格式错误的 ORC 文件错误

Malformed ORC file error

将 Hive External table 从 RC 格式升级到 ORC 格式并 运行 MSCK REPAIR TABLE 当我 select 全部来自 table ,我收到以下错误 -

Failed with exception java.io.IOException:java.io.IOException: Malformed ORC file hdfs://myServer:port/my_table/prtn_date=yyyymm/part-m-00000__xxxxxxxxxxxxx Invalid postscript length 1

将 RC 格式的历史数据迁移到 ORC 格式的新定义的流程是什么 table 如果有的话?

Hive 不会在您添加分区时自动重新格式化数据。您有两个选择:

  1. 将旧分区保留为 RC 文件,并将新分区设为 ORC。
  2. 将数据移动到暂存区 table 并使用插入覆盖将数据重写为 ORC 文件。

Blockquote

添加Row format,input format和outformat解决create语句中的问题:

创建外部 table xyz ( 一个字符串, b 串) 分区方式( c 字符串)

行格式 SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 存储为输入格式 'org.apache.hadoop.mapred.SequenceFileInputFormat' 输出格式 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'

位置"hdfs path";