import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by yz02 on 2017/6/16.
*/
object T_cogroup {
System.setProperty("hadoop.home.dir","F:\\hadoop-2.6.5")
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("cogroup_test").setMaster("local")
val sc = new SparkContext(conf)
val rdd = sc.parallelize(List(("A",1), ("B", 2), ("C", 3)))
val rdd1 = sc.parallelize(List(("A", 4)))
val rdd2 = sc.parallelize(List(("A", 4), ("A", 5)))
//在类型为(K,V)和(K,W)的数据集上调用,返回一个 (K, (Seq[V], Seq[W]))元组的数据集。
val sum = rdd.cogroup(rdd1)
.foreach(println)
val sum1 = rdd.cogroup(rdd2)
.foreach(println)
}
}
运行结果:
(B,(CompactBuffer(2),CompactBuffer()))
(A,(CompactBuffer(1),CompactBuffer(4)))
(C,(CompactBuffer(3),CompactBuffer()))
(A,(CompactBuffer(1),CompactBuffer(4)))
(C,(CompactBuffer(3),CompactBuffer()))
(B,(CompactBuffer(2),CompactBuffer()))
(A,(CompactBuffer(1),CompactBuffer(4, 5)))
(C,(CompactBuffer(3),CompactBuffer()))
(A,(CompactBuffer(1),CompactBuffer(4, 5)))
(C,(CompactBuffer(3),CompactBuffer()))