spark3.0教程:RDD转换算子intersection交集、union并集、subtract差集

intersection交集

对源 RDD 和参数 RDD 求交集后返回一个新的 RDD

要求:RDD泛型必须相同,否则报错

声明

def intersection(other: RDD[T]): RDD[T]

注意: 形参RDD有泛型,与源RDD必须相同,否则报错

例子

val sparConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
val sc = new SparkContext(sparConf)

val rdd:RDD[Int] = sc.makeRDD(List(1,2,3,4,5))
val rdd2:RDD[Int] = sc.makeRDD(List(4,5,6,7,8))

val resRDD=rdd.intersection(rdd2)

resRDD.collect().foreach(println)
sc.stop()

执行结果:

4
5

union并集

对源 RDD 和参数 RDD 求并集后返回一个新的 RDD

相当于 SQL 中的 union all

要求:RDD泛型必须相同,否则报错

例子

val sparConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
val sc = new SparkContext(sparConf)

val rdd:RDD[Int] = sc.makeRDD(List(1,2,3,4,5))
val rdd2:RDD[Int] = sc.makeRDD(List(4,5,6,7,8))

val resRDD=rdd.union(rdd2)

resRDD.collect().foreach(println)
sc.stop()

执行结果:

1
2
3
4
5
4
5
6
7
8

subtract差集

以一个 RDD 元素为主,去除两个 RDD 中重复元素,将其他元素保留下来

要求:RDD泛型必须相同,否则报错

例子

val sparConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
val sc = new SparkContext(sparConf)

val rdd:RDD[Int] = sc.makeRDD(List(1,2,3,4,5))
val rdd2:RDD[Int] = sc.makeRDD(List(4,5,6,7,8))

//以rdd 元素为主,去除两个 RDD 中重复元素,将其他元素保留下来
val resRDD=rdd.subtract(rdd2)

resRDD.collect().foreach(println)
sc.stop()

执行结果:

1
2
3

原文出处:/show_1IX1Kf63OTIt.html