doris中的表结构和字段类型与hive中表字段结构不一致
比如spark计算后生成的orc表头和doris中的不一致。如下为hive和spark分别生成的orc文件表头,

![大数据平台部 > 1. [SOLVED]hive 2 doris:ParseError, Invalid column selected _colXXX > hive.orc.png](/download/attachments/155513814/hive.orc.png?version=1&modificationDate=1594687913000&api=v2)
不管hive or spark,表头都需要和doris load语句中声明一致:

![大数据平台部 > 1. [SOLVED]hive 2 doris:ParseError, Invalid column selected _colXXX > image2020-7-13_15-11-12.png](/download/attachments/155513814/image2020-7-13_15-11-12.png?version=1&modificationDate=1594624273000&api=v2)
col0, col1, col2可以理解为hive中的字段占位符; 而spark生成的orc文件表头是字段名, 如果load中使用占位符,会匹配失败,导致不能成功导入数据
doris中字段不满足实际数据存储需求
比如doris中字段为varchar(100), 而实际数据长度超过100长度。
load hdfs中的orc文件时,有的orc文件为空。 一般hive或者spark导出结算结果到hdfs中时,结果会保存为多个文件, 在生成doris 导入语句时通常用星号代表全部orc文件。
此时如果由于spark或者hive某些配置,导致生成的orc文件没有数据(大小为49b),会导致doris读取不到表头,进而导入失败。
![大数据平台部 > 1. [SOLVED]hive 2 doris:ParseError, Invalid column selected _colXXX > image2020-7-14_21-52-14.png](/download/attachments/155513814/image2020-7-14_21-52-14.png?version=1&modificationDate=1594734735000&api=v2)

解决办法
调整spark或者hive配置,使之生成的每一个orc文件都有内容(至少得有表头)
如何查询hdfs中hive文件的字段(表头,也叫元数据):hive --orcfiledump hdfs文件路径
欢迎添加微信,互相学习↑↑↑ -_-
![]()
白老虎
programming is not only to solve problems, ways to think
grafana 级连 菜单 templating (variables) 配置
rocketmq 集群搭建 (2master + 2slave + 2namesrv)
AI 机器人 抓取 微信 聊天中的 百度网盘 分享地址和密码