目录
在Spark中,这三者都是针对
分区
操作的,功能较为类似
我的测试环境如下:
- win10
- scala2.12.10
- spark-3.1.1-bin-hadoop3.2
- hadoop3.2.2
coalesce
coalesce
既可以实现RDD分区的合并缩小,也可以实现RDD分区的扩大
为什么要合并缩小分区
在 spark
程序中,若存在过多的小任务的时候,可以通过 coalesce 方法,收缩合并分区,减少分区的个数,减小任务调度成本
例如在大数据集经过过滤
操作后,根据数据量进行缩减分区
,实现提高数据集的执行效率
coalesce使用
减小分区
val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("coalesce")
val sc = new SparkContext(sparkConf)
val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4, 5, 6), numSlices = 3) // 设定分区数量为3
// 那么根据RDD的分区规则 数据分布为【1, 2】【3, 4】【5, 6】
// 可通过以下验证
rdd.saveAsTextFile(