前言
我们知道,Spark在执行任务的时候,可以并行执行,可以将数据分散到不同的分区进行处理,但是在实际使用过程中,比如在某些场景下,一开始数据量大,给的分区是4个,但是到了数据处理快结束的时候,希望分区缩减,减少资源开销,这就涉及到分区的动态调整,就要使用到Spark提供的coalesce与repartition这两个算子了;
coalesce
函数签名
def coalesce( numPartitions: Int , shuffle: Boolean = false ,partitionCoalescer: Option[PartitionCoalescer] = Option.empty)(implicit ord: Ordering[T] = null)