SparkSQL读取Hbase表,操作DataFrame时报错

叶绿体先生 2018-10-26 08:10:47

-----------SparkSQL读取Hbase表,操作DataFrame时报错------------

-------------代码如下---------------------



-------------第一条SQL运行成功----------



-------------第二条SQL运行报错----------


...全文
319 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
码太狼 2018-11-02
  • 打赏
  • 举报
回复
spark-hbase已经很久不更新了吧,这个不要用
LinkSe7en 2018-11-02
  • 打赏
  • 举报
回复
引用 5 楼 w1123900645 的回复:
[quote=引用 4 楼 link0007 的回复:] [quote=引用 2 楼 w1123900645 的回复:] [quote=引用 1 楼 link0007 的回复:] 目测是你有一行age为null了,试试where age is not null and age > 25
表的数据没有空值,而且试了这句SQL也是同样的错误。感觉不是SQL的问题,好像是与hbase整合的问题,因为不管查询哪一列,只要用where筛选就会报这个错误。[/quote] 你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表[/quote] 谢谢,我没有用过Hive。 上面是用的Hbase-Spark.jar第三方依赖jar包,实在解决不了了,我猜测是版本兼容的问题,所以放弃了这种方法。 后来我试了试先将Hbase表读成RDD,然后用官网上说的,以编程的方式指定 Schema,将RDD转化为DataFrame的方式,就没有问题了。 虽然代码复杂了不少,灵活性也很差,但是暂时这能用这种办法了。 [/quote] 建议还是用Hive作为HDFS系的统一结构化门面。我们这边通过hive访问hbase外表是没有问题的,spark再去访问也没问题
叶绿体先生 2018-10-31
  • 打赏
  • 举报
回复
引用 4 楼 link0007 的回复:
[quote=引用 2 楼 w1123900645 的回复:] [quote=引用 1 楼 link0007 的回复:] 目测是你有一行age为null了,试试where age is not null and age > 25
表的数据没有空值,而且试了这句SQL也是同样的错误。感觉不是SQL的问题,好像是与hbase整合的问题,因为不管查询哪一列,只要用where筛选就会报这个错误。[/quote] 你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表[/quote] 谢谢,我没有用过Hive。 上面是用的Hbase-Spark.jar第三方依赖jar包,实在解决不了了,我猜测是版本兼容的问题,所以放弃了这种方法。 后来我试了试先将Hbase表读成RDD,然后用官网上说的,以编程的方式指定 Schema,将RDD转化为DataFrame的方式,就没有问题了。 虽然代码复杂了不少,灵活性也很差,但是暂时这能用这种办法了。
叶绿体先生 2018-10-29
  • 打赏
  • 举报
回复
补充一下: 同样的表,如果从MySQL中读取生成DataFrame,执行操作就没有任何问题。 从Hbase中读取,只要用到where过滤,或者用filter()方法,都会报上述错误。 下边是表数据情况:
叶绿体先生 2018-10-29
  • 打赏
  • 举报
回复
引用 1 楼 link0007 的回复:
目测是你有一行age为null了,试试where age is not null and age > 25
表的数据没有空值,而且试了这句SQL也是同样的错误。感觉不是SQL的问题,好像是与hbase整合的问题,因为不管查询哪一列,只要用where筛选就会报这个错误。
LinkSe7en 2018-10-29
  • 打赏
  • 举报
回复
引用 2 楼 w1123900645 的回复:
[quote=引用 1 楼 link0007 的回复:] 目测是你有一行age为null了,试试where age is not null and age > 25
表的数据没有空值,而且试了这句SQL也是同样的错误。感觉不是SQL的问题,好像是与hbase整合的问题,因为不管查询哪一列,只要用where筛选就会报这个错误。[/quote] 你试一下Hive挂HBase外表的形式,在Hive测试一下,再由Spark访问Hive这个表
LinkSe7en 2018-10-27
  • 打赏
  • 举报
回复
目测是你有一行age为null了,试试where age is not null and age > 25

1,258

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧