火花重新分区和合并
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。
【讨论】:
以上是关于火花重新分区和合并的主要内容,如果未能解决你的问题,请参考以下文章