Spark 中repartition和coalesce的区别

前言


在Apache Spark中,repartitioncoalesce是两种用于重新分区RDD或DataFrame的转换操作。它们的主要区别在于它们对分区数量的处理方式和使用场景。repartition 是 coalesce shuffle为True的实现。 两者使用的场景。 首先,repartition 的shuffle比较慢, coalesce 虽然不需要shuffle,但是,指定coalesce保留的partition数目后,只有相应数目的executor-cores 进行合并,其他的核会进行空计算,导致机器利用效率比较低。因此,如果需要保留的partition还是比较大,但同时比之前的partition小的,可以考虑coalesce,效率应该会高点:

   

repartition


repartition操作用于改变RDD或DataFrame的分区数量。这个操作可以增加或减少分区的数量,并且可以指定一个分区器来控制数据在新分区中的分布。

  • 增加分区:如果新的分区数大于当前分区数,repartition会将数据重新分配到更多的分区中,这可能会导致数据的重新洗牌(shuffle)。
  • 减少分区:如果新的分区数小于当前分区数,repartition会合并现有的分区,这同样可能涉及到数据的重新洗牌。
  • 使用场景:当需要调整数据的并行度以适应不同的计算资源或优化性能时使用。例如,如果一个任务因为数据倾斜而运行缓慢,可以通过增加分区来改善性能。

coalesce


coalesce操作用于减少RDD或DataFrame的分区数量,但是与repartition不同,它不会增加分区数量。

  • 减少分区coalesce只能减少分区数量,如果指定的分区数大于当前分区数,它将保持当前的分区数不变。
  • 无数据洗牌:与repartition不同,coalesce在减少分区时尽可能避免数据的重新洗牌,这使得它在减少分区时更加高效。
  • 使用场景:当需要减少数据的并行度,以减少资源消耗或在执行减少操作(如reducecollect)之前准备数据时使用。

 

df.repartition(1).write.mode("overwrite").option("header","true").option("emptyValue","")/
.csv("%s/chunjiechangan"%(save_path))

 

相关推荐

  1. [spark] coalesce() repartition()区别

    2024-06-07 18:50:03       94 阅读
  2. Spark SQLcoalesce()函数

    2024-06-07 18:50:03       61 阅读
  3. flinkspark区别

    2024-06-07 18:50:03       33 阅读
  4. SQL、HiveSQLSparkSQL三者联系与区别

    2024-06-07 18:50:03       60 阅读
  5. hive sql spark sql区别

    2024-06-07 18:50:03       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 18:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 18:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 18:50:03       87 阅读
  4. Python语言-面向对象

    2024-06-07 18:50:03       96 阅读

热门阅读

  1. Advantages of high pressure cleaners

    2024-06-07 18:50:03       30 阅读
  2. 六个搜索算法及其python实现

    2024-06-07 18:50:03       32 阅读
  3. 思考、学习、创造、越来越有趣

    2024-06-07 18:50:03       29 阅读
  4. vscode导入自定义模块报错ModuleNotFoundError解决方案

    2024-06-07 18:50:03       28 阅读
  5. 深入理解Nginx的Round-Robin负载均衡策略

    2024-06-07 18:50:03       31 阅读
  6. 获得抖音商品评论 API 返回值

    2024-06-07 18:50:03       24 阅读
  7. 在vue项目中实现单点登录

    2024-06-07 18:50:03       29 阅读