Spark Rdd coalesce()方法和repartition()

    xiaoxiao2021-03-25  116

    coalesce()方法和repartition()都是对RDD重新分区的函数

    coalesce(numPartitions: Int, shuffle: Boolean = false) coalesce(1200,shuffle=true)

    如果是生成一个窄依赖的结果,那么不会发生shuffle。比如:1000个分区被重新设置成10个分区,这样不会发生shuffle。

    如果分区的数量发生激烈的变化,如设置numPartitions = 1,这可能会造成运行计算的节点比你想象的要少,为了避免这个情况,可以设置shuffle=true

    当把父Rdd的分区数量增大时,比如Rdd的分区是100,设置成1000,如果shuffle为false,并不会起作用。

    这时候就需要设置shuffle为true了,那么Rdd将在shuffle之后返回一个1000个分区的Rdd,数据分区方式默认是采用 hash partitioner。

    repartition()方法就是coalesce()方法shuffle为true的情况。

    转载请注明原文地址: https://ju.6miu.com/read-13127.html

    最新回复(0)