Rdd joinapi 及理解详细释义

API  

def join[W](other: RDD[(K, W)]): RDD[(K, (V, W))]
  返回值是RDD,RDD中的类型是一个二元组(a),a第一个元素是KEY类型的值(join的key), a第二个元素又是二元组(b), b的第一个元素是来自调用join函数的RDD的value,
  b的第二个元素是来自参数other这个RDD的value

inner join 只返回左右都匹配上的

def leftOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (V, Option[W]))]
  对于右边的数据返回的是Option类型是数据,所以如果右表数据不存在,返回的是None;否则是一个Some的具体数据

是以left左为基准的,左边所有的都会给列出来,返回左边的全部跟右边关联,左边有右边没有就会返回none

def rightOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (Option[V], W))]
  对于左边的数据返回的是Option类型是数据,所以如果左表数据不存在,返回的是None;否则是一个Some的具体数据

def fullOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (Option[V], Option[W]))]
  返回的value类型是Option封装后的数据,如果数据不存在, 返回的是None,存在返回的是Some具体数据

示例数据 

inner join

 2 left join

 3 righter join

 4  full outer join

 join 之前要一定要先了解自己 rdd中的数据结构,可以筛选部分数据自己尝试 join  ,了解join后的数据是不是自己想要的数据 在去选择相关join

原文地址:https://www.cnblogs.com/Mr--zhao/p/12799925.html