cogroup函数是一个操作两个RDD的函数,且每个RDD是一个key-value类型;它可以把按照两个RDD的key进行分组,分组的结构是:元组第一个元素是一个key
第二个元素是一个列表,其中第一个元素是RDD1的元素,第二个元素是RDD2的元素
val pairRDD = sc.parallelize[(Int, Int)](Seq((1, 2), (3, 4), (3, 6), (5, 6)), 4)
val otherRDD = sc.parallelize(Seq((3, 9), (4, 5)))
scala> pairRDD.cogroup(otherRDD).collect() res12: Array[(Int, (Iterable[Int], Iterable[Int]))] = Array((1,(CompactBuffer(2),CompactBuffer())),
(3,(CompactBuffer(6, 4),CompactBuffer(9))), (4,(CompactBuffer(),CompactBuffer(5))), (5,(CompactBuffer(6),CompactBuffer()))) scala> pairRDD.collect res13: Array[(Int, Int)] = Array((1,2), (3,4), (3,6), (5,6)) scala> otherRDD.collect res14: Array[(Int, Int)] = Array((3,9), (4,5))