spark-sql 关联问题

spark-sql 使用不等关联不出数据,的解决办法
2017-10-20

计划

spark-sql 取出join后另外一个字段匹配不上的记录
select * from ap1 a join ap2 b on a.id=b.id and a.name!=b.name 该结果不是想要的,需要吧不匹配上的数据取出

完成

问题总结,a.name!=b.name 如果 a.name和b.name 其中一个为null,一个为非null,使用a.name!=b.name是关联不出来数据的,解决办法 scala,使用集和的差集,具体参考
http://blog.csdn.net/pzw_0612/article/details/45936165

问题

table ap1

+—————–+———-+
| id| name|
+—————–+———-+
|08-A5-C8-85-12-19| ZhaoNeng|
|08-A5-C8-85-12-12|LiangXiang|
|08-A5-C8-85-12-11| null|
+—————–+———-+

table ap1

+—————–+———-+
| id| name|
+—————–+———-+
|08-A5-C8-85-12-19| ZhaoNeng|
|08-A5-C8-85-12-12|LiangXiang|
|08-A5-C8-85-12-11| HuaWeiA|
+—————–+———-+

select * from ap1 a join ap2 b on a.id=b.id

+—————–+———-+—————–+———-+
| id| name| id| name|
+—————–+———-+—————–+———-+
|08-A5-C8-85-12-19| ZhaoNeng|08-A5-C8-85-12-19| ZhaoNeng|
|08-A5-C8-85-12-11| null|08-A5-C8-85-12-11| HuaWeiA|
|08-A5-C8-85-12-12|LiangXiang|08-A5-C8-85-12-12|LiangXiang|
+—————–+———-+—————–+———-+

select * from ap1 a join ap2 b on a.id=b.id and a.name=b.name

+—————–+———-+—————–+———-+
| id| name| id| name|
+—————–+———-+—————–+———-+
|08-A5-C8-85-12-19| ZhaoNeng|08-A5-C8-85-12-19| ZhaoNeng|
|08-A5-C8-85-12-12|LiangXiang|08-A5-C8-85-12-12|LiangXiang|
+—————–+———-+—————–+———-+

select * from ap1 a join ap2 b on a.id=b.id and a.name!=b.name

该结果不是想要的,需要吧不匹配上的数据取出
+—+—-+—+—-+
| id|name| id|name|
+—+—-+—+—-+
+—+—-+—+—-+

总结

问题总结,a.name!=b.name 如果 a.name和b.name 其中一个为null,一个为非null,使用a.name!=b.name是关联不出来数据的,解决办法 scala,使用集和的差集,具体参考

相关资料信息地址

scala 相关集和计算
http://blog.csdn.net/pzw_0612/article/details/45936165

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值