ORC表查询结果为空但select count(*)不为0

问题描述/异常栈

ORC表查询结果为空但select count(*)不为0,如下图

FAQ-ORC表查询结果为空但select count(*)不为0 - 图1 FAQ-ORC表查询结果为空但select count(*)不为0 - 图2

解决方案

1set spark.sql.hive.convertMetastoreOrc=false
2、遇到array 等复杂类型时需要字段一致,否则无法查询

问题原因

建表sql字段类型与文件类型不一致
检查字段类型方法:
./current/bin/hive --orcfiledump hdfs://easyops-cluster/xxx/dt=xxx/part-00000-ebf01e6d-05f7-41b2

FAQ-ORC表查询结果为空但select count(*)不为0 - 图3 FAQ-ORC表查询结果为空但select count(*)不为0 - 图4

文档说明:https://docs.popo.netease.com/lingxi/e2f255431af249eba6e063cfa8b10933#edit

作者:林帅