-----------SparkSQL读取Hbase表,操作DataFrame时报错------------
-------------代码如下---------------------
解决方案 »
- OpenStack+kvm+dhcp+tftp如何实现
- hadoop 2 namenode format时报错,求大侠解决
- 有何工具便捷管理docker ?
- SparkPi 报错 ClassNotFoundException
- 怎么把镜像推送到daocould.io
- 阿里云运行docker解决方案
- AWS 安装好nginx后,无法用Amazon 给的公用DNS,IP 访问?
- SparkUI界面打不开
- 公司现在靠流量兄弟云站群推广,要增加服务器,什么配置的最好呢?
- 怎么在一台服务器上配置多个ip
- 我想把一个spark dataframe内的数据与另一个dataframe比较大小,然后筛选出结果,请问我应该使用什么函数?求大神解答,感觉很简单
- [入门级问题]spark中操作elasticsearch,可以使用elasticsearch java client吗
同样的表,如果从MySQL中读取生成DataFrame,执行操作就没有任何问题。
从Hbase中读取,只要用到where过滤,或者用filter()方法,都会报上述错误。下边是表数据情况:
你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表
你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表谢谢,我没有用过Hive。
上面是用的Hbase-Spark.jar第三方依赖jar包,实在解决不了了,我猜测是版本兼容的问题,所以放弃了这种方法。
后来我试了试先将Hbase表读成RDD,然后用官网上说的,以编程的方式指定 Schema,将RDD转化为DataFrame的方式,就没有问题了。
虽然代码复杂了不少,灵活性也很差,但是暂时这能用这种办法了。
你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表谢谢,我没有用过Hive。
上面是用的Hbase-Spark.jar第三方依赖jar包,实在解决不了了,我猜测是版本兼容的问题,所以放弃了这种方法。
后来我试了试先将Hbase表读成RDD,然后用官网上说的,以编程的方式指定 Schema,将RDD转化为DataFrame的方式,就没有问题了。
虽然代码复杂了不少,灵活性也很差,但是暂时这能用这种办法了。
建议还是用Hive作为HDFS系的统一结构化门面。我们这边通过hive访问hbase外表是没有问题的,spark再去访问也没问题