Spark 合并更多分区

Spark Coalesce More Partitions

我有一个处理大量数据并将结果写入 S3 的 spark 作业。在处理过程中,我可能有超过 5000 个分区。在写入 S3 之前,我想减少分区的数量,因为每个分区都作为一个文件写出。

在其他一些情况下,我在处理过程中可能只有 50 个分区。如果出于性能原因我想合并而不是重新分区会发生什么。

从文档中可以看出,仅当输出分区的数量小于输入时才应使用合并,但如果不是,会发生什么,它似乎不会导致错误?会不会导致数据不正确或性能问题?

我试图避免必须对我的 RDD 进行计数以确定我的分区是否超过我的输出限制,如果超过则合并。

在默认情况下 PartitionCoalescer,如果分区数大于当前分区数并且您未将 shuffle 设置为 true,则分区数保持不变。

另一方面,

coalesceshuffle 设置为 true 等同于具有相同值 numPartitions.[=18= 的 repartition ]