Hive常见错误总结

1.temp表中时间字段不为null,写入正式表后却出现了null值。原因如下: 因为同步的时候对time字段使用了to_date('2021-10')函数后导致的。
2.hive sql中子查询需要定义别名,否则报错。
3.hive执行报错Cannot allocate memory(集群有别人在跑大任务导致资源不够用,需要更换服务器执行)
4. Cannot insert into target table because column number/types are different 'dt': Table insclause-0 has 13 columns, but query has 15 columns,insert overwrite table的时候报的错误,大致意思就是需要插入的是13列,但是查出来了15列,原因:静态分区的话不需要在select后指定,动态分区需要。再有一种情况就是select的表选错了,跟实际的表结构不一致。
5.hive 交互式输入文本文档写好的格式化的sql后运行会报:Display all 478 possibilities? (y or n),原因:因为有tab键导致的,需要去掉。
6.通过shell脚本方式执行hive sql,最终导致hive表中有乱码且shell脚本中的中文也无法识别,此时需要修改一下.bash_profile中的LANG=en_US.UTF-8即可解决。
7.hive sql中的表不写数据库前缀会操作defalut默认库。
8. ClassCastException org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector 因为where条件中的条件没有写判断条件只写了列名导致的。
9.SemanticException Column contract_no Found in more than One Tables/Subqueries 因为两个表join的时候有相同的字段,join后select的时候未指定表别名,导致报这个错误。
10.生产环境使用beeline查询表问题:select count(*) from a; 返回结果0,但是select * from a limit 5却又有数据。hive参数配置导致,set hive.compute.query.using.stats=false;具体可参考:hive里面select count(*)为0,select * 有数据_zxlstart的博客-CSDN博客

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值