Spark中的最佳重新分区方式
Posted
技术标签:
【中文标题】Spark中的最佳重新分区方式【英文标题】:Optimal way of repartition in Spark 【发布时间】:2020-08-06 13:13:24 【问题描述】:我有 500 MB 的 csv 文件,我正在将其作为数据框读取 我正在寻找这个数据帧的分区的最佳值 我需要做一些广泛的转换并将这个数据框与另一个 csv 连接起来,所以我现在有以下 3 种方法来重新分区这个数据框
-
df.repartition(核心数)
按照计算500MB/128MB~4个分区对dataframe重新分区,每个分区至少有128MB数据
使用 csv 的特定列对数据帧进行重新分区,以便将数据放在相同的分区中
我想知道这些选项中的哪一个最适合在 Spark 2.4 中进行并行计算和处理
【问题讨论】:
【参考方案1】:如果您非常了解数据,那么使用列对数据进行分区效果最好。但是,每当集群配置发生变化时,基于块大小和核心数量的重新分区都会发生变化,并且如果您的集群配置在更高的环境中不同,您需要对每个环境进行这些更改。因此,总而言之,数据驱动的重新分区是更好的方法。
【讨论】:
以上是关于Spark中的最佳重新分区方式的主要内容,如果未能解决你的问题,请参考以下文章