hive orc表增加字段之后,hetu查询报错

Posted 绽放文化

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive orc表增加字段之后,hetu查询报错相关的知识,希望对你有一定的参考价值。

问题现象:

某集群hive表新增字段,然后插入数据。使用hive查询正常,但是使用hetu查询报错。报错堆栈如下:
Caused by: io.prestosql.spi.PrestoException: Error opening Hive split hdfs://hacluster/user/xxx/hive/xx/xxx/sysp_year=2021/sysp_month=07/sysp_day=16/part-00000-83acb0c2-e980-4e78-87d4-b6aacc70ce68.c000.snappy.orc (offset=0, length=67017): Malformed ORC file. Can not read SQL type timestamp from ORC stream .tag

问题原因:

hive默认支持按orc文件里面的schema顺序去读取字段,而hetu默认是顺序读取orc文件的字段,所以导致新增字段之后,读取的字段类型不匹配,而导致报错。

解决方法:

hetu有参数hive.orc.use-column-names = true 来控制是否按orc文件的schema顺序来读取字段。需要添加到hive数据源的hive.propreties文件,即console数据源的自定义参数配置。
如果是本地hive,则需要在hsboker的自定义参数。

以上是关于hive orc表增加字段之后,hetu查询报错的主要内容,如果未能解决你的问题,请参考以下文章

hive表添加字段导致历史分区查询报错

Hive入门Hive优化

Hive Streaming 追加 ORC 文件

雅典娜和 S3 库存。 HIVE_BAD_DATA:ORC 中字段大小的 LONG 类型与表模式中定义的类型 varchar 不兼容

带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败

parquet常用操作