报错日志如下
可以看出报错的地方再OrcFile的WriterVersion的from方法,定位代码发生在下面代码的values[val]代码段。values的值从代码可以看出values的数据应该为5,见下图代码
而传过来的val是6,向上看代码,version来源是文件的meta,应该是spark版本的原因导致hive不支持的version。
解决
修改OrcFile文件的WriterVersion的内部类的from方法:
public static WriterVersion from(int val) {
if (val >= values.length) return FUTURE; // Special handling for the magic value.
return values[val];
}
重新打包,并替换hive-exec.jar 和 hive-orc.jar