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

猜你喜欢

转载自blog.csdn.net/xumajie88/article/details/78292192