一、Join家族的API
1.定义
2.功能描述
对两个RDD进行join操作,包括全外联、左外联、右外联以及join。
3.示例
案例使用的类型信息:
1)leftRdd:RDD[String,Int]--(name,age),即元素类型为元组,元组包含名字和年龄。
2)rightRdd:RDD[String,Char]--(name,gender:f/m),即元素类型为元组,元组包含名字和性别,性别由f或m表示,分别对应female和male。
4.示例解析
查看各操作后RDD元素类型的变化,如下所示:(www.xing528.com)
1)fullOuterJoin:RDD[K,V]fullOuterJoinRDD[K,W]=>RDD[K,(Option[V],Option[W])]。
2)leftOuterJoin:RDD[K,V]leftOuterJoinRDD[K,W]=>RDD[K,(V,Option[W])]。
3)rightOuterJoin:RDD[K,V]rightOuterJoinRDD[K,W]=>RDD[K,(Option[V],W)]。
4)Join:RDD[K,V]join RDD[K,W]=>RDD[K,(V,W)]。
其中,当类型为Option[V]时,表示该V类型的值有两种状态,Some[V]或None,可以结合元素类型是否为Option[V]来解析全外联、左外联、右外联操作的含义,即是不是包含了关联缺失的输出。
5.扩展知识
Join类型有:cross join、inner join、left outer join、right outer join、full outer join。
首先都是基于cross join(笛卡尔乘积),然后是inner join,在笛卡尔乘积的结果集中去掉不符合连接条件的行。left outer join是在inner join的结果集上再加上左表中没被选上的行,同时行的右表部分的每个字段都用NULL填充。right outer join是在inner join的结果集上再加上右表中没被选上的行,同时行的左表部分的每个字段都用全用NULL填充。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。