Pyspark将数据写入Hbase产生java.lang.NullPointerException“空指针”错误

操作系统:Windows 10

jdk版本:1.8.0_181

scala版本:2.11.8

zookeeper版本:hbase自带zookeeper

hadoop版本:2.7.5

spark版本:2.3.0

hbase版本:1.4.0


出现问题:

使用pycharm下编写的通过Pyspark将rdd数据写入hbase产生了空指针的问题。最奇怪的是,这个环境读取Hbase的数据完全没问题,但是写入就会产生空指针。
这里写图片描述


解决办法:

我使用的Hbase1.4.0、spark版本是2.3.0。读取Hbase的数据需要将hbase的依赖包导入到spark中(使用Pyspark读取hbase不会的可以参考我的上一篇文章)考虑可能是Hbase版本升级后依赖包内存在接口修改,导致无法使用。

解决方式将Hbase降级使用1.1.2低版本并且把所有hbase开头的依赖包hbase-*.jar全部导入到spark目录下的jars目录里,另外还需要下载一个spark-examples_2.11-1.6.0-typesafe-001.jar
由于apache这类项目更新快,jar版本控制严格,不像使用scala可以通过maven进行版本控制,python的话就会很费劲,事了很多次最后使用低版本的依赖包就可以解决写入空指针的问题。

在这附一个官方测试用例的地址,大家可以跑跑看:
hbase_outputformat.py

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值