RDD的重分区:
coalesce(numPartition,shuffle=false),将原先有N个partition进行分区合并,
合并之后RDD分区个数为numpartition。
分区合并有两种可能:
分区减少:没有走shuffle
分区增大:设置shuffle=true
在shuffle为false的情况下,增大分区个数其实是不起作用,如果要想增大分区,
必须要设置shuffle为true。spark中把coalesce(numPartition, shuffle=true),
使用另外一个函数代替:repartition(numPartition)。极端情况,如果将分区减
少至1个的时候,就应该将shuffle=true,此时就是一个宽依赖。
这个重分区在特定情况下是非常有必要的,比如就在etl清洗过程中,有可能过滤
掉很多的脏数据,原先分区100个,比如数据过滤之后减少了30%,
所以原先的分区中数据不饱和,其实就意味着,资源有点浪费,此时就可以进行重分
区,减少分区的个数,重复利用的资源。