Spark中两个可以改变分区的算子:repartition coalesce

两个可以改变分区的算子

举例:    repartition(10) = coalesce(10,true)

参数: shuffle: 数据是否重新分发。  简单理解: 一个分区的数据是否会被分配到多个分区中。

repartition: 重新分区  ,数据必须要进行shuffle。

coalesce: 常用于 减少分区 ,合并分区。  数据不会进行shuffle。

如何使用:

正常情况下,如果需要对数据进行重新分发(shuffle), 优先选择repartition。

仅仅需要合并分区,不需要数据的shuffle,  优先选择 coalesce。

coalesce,不能用于扩大分区,否则分区数量是不变的。

repartition ,常用于扩大分区,把分区数量调大, 处理的速度更快。这是常用的Spark优化手段之一

你可能感兴趣的:(Spark,Spark)