spark RDD基础装换操作--coalesce操作

10.coalesce操作

创建一个由数字1~100组成的RDD,并且设置为10个分区。然后执行coalesce操作,将分区数聚合为“5”,然后再将其拓展为“7”,观察操作后的效果。
scala>  val rddData1 = sc.parallelize(1 to 100,10)
rddData1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[17] at parallelize at <console>:24

scala>  rddData1.partitions.length
res4: Int = 10

scala>  val rddData2 = rddData1.coalesce(5)
rddData2: org.apache.spark.rdd.RDD[Int] = CoalescedRDD[18] at coalesce at <console>:26

scala>  rddData2.partitions.length
res5: Int = 5

scala>  val rddData3 = rddData2.coalesce(7)
rddData3: org.apache.spark.rdd.RDD[Int] = CoalescedRDD[19] at coalesce at <console>:28

scala>  rddData3.partitions.length
res6: Int = 5

说明:
val rddData1 = sc.parallelize(1 to 100,10):创建一个分区为10的RDD

rddData1.partitions.length:显示rddData1的分区数为10

val rddData2 = rddData1.coalesce(5):将分区数聚合到5

coalesce操作会将分区数较多的原始RDD向分区数较少的目标RDD进行转换。如果目标RDD的分区数大于原始RDD的分区数,则维持原分区数不变,此时操作毫无意义,就如这里面val rddData3 = rddData2.coalesce(7)一样rddData2的分区数是5,目标rddData3的分区数是7,最后分区数仍然是5。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值