Spark 合并更多分区
Spark Coalesce More Partitions
我有一个处理大量数据并将结果写入 S3 的 spark 作业。在处理过程中,我可能有超过 5000 个分区。在写入 S3 之前,我想减少分区的数量,因为每个分区都作为一个文件写出。
在其他一些情况下,我在处理过程中可能只有 50 个分区。如果出于性能原因我想合并而不是重新分区会发生什么。
从文档中可以看出,仅当输出分区的数量小于输入时才应使用合并,但如果不是,会发生什么,它似乎不会导致错误?会不会导致数据不正确或性能问题?
我试图避免必须对我的 RDD 进行计数以确定我的分区是否超过我的输出限制,如果超过则合并。
在默认情况下 PartitionCoalescer
,如果分区数大于当前分区数并且您未将 shuffle
设置为 true
,则分区数保持不变。
另一方面,coalesce
将 shuffle
设置为 true
等同于具有相同值 numPartitions
.[=18= 的 repartition
]
我有一个处理大量数据并将结果写入 S3 的 spark 作业。在处理过程中,我可能有超过 5000 个分区。在写入 S3 之前,我想减少分区的数量,因为每个分区都作为一个文件写出。
在其他一些情况下,我在处理过程中可能只有 50 个分区。如果出于性能原因我想合并而不是重新分区会发生什么。
从文档中可以看出,仅当输出分区的数量小于输入时才应使用合并,但如果不是,会发生什么,它似乎不会导致错误?会不会导致数据不正确或性能问题?
我试图避免必须对我的 RDD 进行计数以确定我的分区是否超过我的输出限制,如果超过则合并。
在默认情况下 PartitionCoalescer
,如果分区数大于当前分区数并且您未将 shuffle
设置为 true
,则分区数保持不变。
coalesce
将 shuffle
设置为 true
等同于具有相同值 numPartitions
.[=18= 的 repartition
]