UnionOperator

package com.bjsxt.scala.spark.high.operator

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import scala.collection.mutable.ListBuffer

object UnionOperator {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
      .setMaster("local")
      .setAppName("JoinOperator")
      .set("spark.rdd.compress", "true")
    val sc = new SparkContext(conf)
    val rdd1 = sc.parallelize(1 to 10,2)   // 1 2 3 4 5 10
    val rdd2 = sc.makeRDD(2 to 11,2)// 1 2 3 4 ..9  
    val rdd3 = sc.makeRDD(Array("A","B","C"))
    /**
     * 实际上在底层 并不会将RDD1和RDD2真正合并,并没有数据的传输
     * 而是逻辑上将RDD1和RDD2看成是一个组合,组合名叫unionRDD
     */
    val unionRDD = rdd1.union(rdd2)
    println(unionRDD.count())
    unionRDD.foreach { println }
    /**
     * 差集
     */
    rdd1.subtract(rdd2).foreach { println }
    /**
     * 交集
     */
    rdd1.intersection(rdd2).foreach { println }
  }
}

  

posted @ 2018-06-18 14:06  uuhh  阅读(77)  评论(0)    收藏  举报