5.2 双Value类型
5.2.1 union
-
作用:对源 RDD 和参数 RDD 求并集后返回一个新的 RDD
#(1)创建第一个 RDD scala> val rdd1 = sc.parallelize(1 to 5) rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[23] at parallelize at <console>:24 #(2)创建第二个 RDD scala> val rdd2 = sc.parallelize(5 to 10) rdd2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[24] at parallelize at <console>:24 #(3)计算两个 RDD 的并集 scala> val rdd3 = rdd1.union(rdd2) rdd3: org.apache.spark.rdd.RDD[Int] = UnionRDD[25] at union at <console>:28 #(4)打印并集结果 scala> rdd3.collect() res18: Array[Int] = Array(1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10)
5.2.2 subtract
-
作用:计算差的一种函数,去除两个 RDD 中相同的元素,不同的 RDD 将保留下来
-
需求:创建两个 RDD,求第一个 RDD 与第二个 RDD 的差集
#(1)创建第一个 RDD scala> val rdd = sc.parallelize(3 to 8) rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[70] at parallelize at <console>:24 #(2)创建第二个 RDD scala> val rdd1 = sc.parallelize(1 to 5) rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[71] at parallelize at <console>:24 #(3)计算第一个 RDD 与第二个 RDD 的差集并打印 scala> rdd.subtract(rdd1).collect() res27: Array[Int] = Array(8, 6, 7)
5.2.3 intersection
-
作用:对源 RDD 和参数 RDD 求交集后返回一个新的 RDD
-
需求:创建两个 RDD,求两个 RDD 的交集
#(1)创建第一个 RDD scala> val rdd1 = sc.parallelize(1 to 7) rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[26] at parallelize at <console>:24 #(2)创建第二个 RDD scala> val rdd2 = sc.parallelize(5 to 10) rdd2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[27] at parallelize at <console>:24 #(3)计算两个 RDD 的交集 scala> val rdd3 = rdd1.intersection(rdd2) rdd3: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[33] at intersection at <console>:28

本文介绍了Spark中RDD的五种核心操作:union用于并集,subtract执行差集,intersection求交集,sample实现随机抽样,以及combineByKey和key-value操作的灵活应用。通过实例演示了如何使用这些函数处理实际数据,如网站日志和时间统计。
&spm=1001.2101.3001.5002&articleId=121950909&d=1&t=3&u=c717394329a14e7181347d03746f33ce)
2万+

被折叠的 条评论
为什么被折叠?



