关于分区数量的经验法则

根据经验,人们希望他的 RDD 具有与执行者数量的乘积一样多的分区,使用的核心数量为 3(或者可能是 4)。当然,这是一种启发式方法,它实际上取决于你的应用程序,数据集和群集配置。

例:

In [1]: data  = sc.textFile(file)

In [2]: total_cores = int(sc._conf.get('spark.executor.instances')) * int(sc._conf.get('spark.executor.cores'))

In [3]: data = data.coalesce(total_cores * 3)