Spark(五)

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

5.2 双Value类型

5.2.1 union

  1. 作用:对源 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

  1. 作用:计算差的一种函数,去除两个 RDD 中相同的元素,不同的 RDD 将保留下来

  2. 需求:创建两个 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

  1. 作用:对源 RDD 和参数 RDD 求交集后返回一个新的 RDD

  2. 需求:创建两个 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
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值