scala 的rdd stream 发生join后的值是否使用option
object TestScala {
def main(args: Array[String]): Unit = {
val context = new SparkContext(new SparkConf())
val rdd1: RDD[(Int, Int)] = context.makeRDD(1 to 10).map( (_,1))
val rdd2: RDD[(Int, Int)] = context.makeRDD(1 to 10).map( (_,2))
#内连接两边都有值 不使用Option 包装
val unit: RDD[(Int, (Int, Int))] = rdd1.join(rdd2)
#左连接的情况下右边可能没值,右边使用Option修饰
val unit1: RDD[(Int, (Int, Option[Int]))] = rdd1.leftOuterJoin(rdd2)
#右连接的情况下左边可能没值,左边使用Option修饰
val unit2: RDD[(Int, (Option[Int], Int))] = rdd1.rightOuterJoin(rdd2)
# 全连接时两遍都可能没值 , 左右都使用Option修饰
val unit3: RDD[(Int, (Option[Int], Option[Int]))] = rdd1.fullOuterJoin(rdd2)
}
}
网友评论