Hive 空指针(NPE)异常

空指针NullPointerException

 

1 Hive之前的一些BUG

  • [HIVE-9430] - NullPointerException on ALTER TABLE ADD PARTITION if no value given

意思是当为分区表增加新的分区的时候必须指定分区的值

Wrong : ALTER TABLE xxx ADD PARTITION (yyy)

Right   : ALTER TABLE xxx ADD PARTITION (yyy='newPartition') 

  • [HIVE-9623] - NullPointerException in MapJoinOperator.processOp(MapJoinOperator.java:253) for TPC-DS Q75 against un-partitioned schema

 

  • [HIVE-9975] - Renaming a nonexisting partition should not throw out NullPointerException

意思是 query一张分区表的分区字段的值不存在 比如 partition_column='notExistPartition'

  • [HIVE-10437] - NullPointerException on queries where map/reduce is not involved on tables with partitions

意思是  一张分区表,当你要query这张表的时候,如果是起的mapreduce任务来读表那么不会有任何问题,但是如果是直接从HDFS读取数据那么就会产生NPE问题。具体原因与序列化有关。

 

2 其他经常碰到的问题主要是

  • 使用了没有定义的非默认的函数变量, 比如row_number并非是hive的默认函数变量,hive自定义的函数是org.apache.hadoop.hive.ql.udf.generic.GenericUDAFRowNumber , 如果想使用这个函数则需要定义函数变量 create temporary function row_number as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFRowNumber'; 当然函数变量row_number的名称是可以随意取,只要不是保留的关键字即可。
  • 一些语法错误

 

转载于:https://www.cnblogs.com/benchen/p/5916429.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值