火花重新分区和合并

Posted

技术标签:

【中文标题】火花重新分区和合并【英文标题】:Spark Repartition and Coalesce 【发布时间】:2021-09-30 13:14:49 【问题描述】:

如果我想重新分区数据框,如何确定需要制作的分区数?如何决定是使用重新分区还是合并? 据我了解,合并基本上仅用于减少分区数量。但是我们如何决定在什么场景中使用哪个呢?

【问题讨论】:

这能回答你的问题吗? Spark - repartition() vs coalesce() 【参考方案1】:

我们无法根据具体参数来决定,会有多个因素来决定有多少分区和重新分区或合并 *基于数据的大小, 如果文件的大小太大,您可以为每个块分配 2 或 3 个分区 提高性能,但如果给更多的分区它分裂为 小文件。在大数据中,小文件会降低性能。 1 个块 (128 MB) --> 128/2 = 64MB 每个分区,因此 1 个映射器将运行 64 MB *基于集群大小,如果你有更多数量的执行器/核心是免费的,你可以根据它给出。 *repartition 将导致完全 shuffle,而 coalesce 将避免完全 shuffle。

【讨论】:

以上是关于火花重新分区和合并的主要内容,如果未能解决你的问题,请参考以下文章

使用少于 N 个分区的 N 个文件向磁盘写入火花

火花重新分配不均匀,仍然偏斜

LINUX系统重新安装

11月技术考核:LINUX系统重新安装

使用 pyspark 重新分区失败并出现错误

Pyspark:重新分区与分区