查看一些示例spark代码,我看到重新分区或合并中的数字是硬编码的:
val resDF = df.coalesce(16)
管理此参数的最佳方法是,当群集在几秒钟内动态updated时,此硬编码值变得无关紧要。
答案 0 :(得分:2)
在示例中,通常会看到硬编码值,因此您不必担心,我的意思是随意修改示例。我的意思是分区文档中充满了硬编码值,但这些值只是示例。
关于分区数量的经验法则是:
人们希望他的RDD拥有与产品一样多的分区 执行者数量,使用核心数量为3(或者4)。 当然,这是一种启发式方法,它实际上取决于你的 应用程序,数据集和集群配置。
但请注意,重新分配不是免费的,因此在极其动态的环境中,您必须确保重新分区的开销对于此操作所获得的收益可以忽略不计。
如我在answer中提到的那样,合并和重新分配可能会有不同的成本。