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