我想看看我的程序的执行时间如何随着不同数量的分区而变化。我使用一台 8 核和 16GB RAM 的机器来运行我的程序。默认情况下,当我创建图形边和顶点时,spark 使用 8 个分区(numPartitions),时间为 11 分钟。但是,当我减少分区数(即sc.parallelize(edges, X)
)时,我得到以下结果:
X = 8 (default) -> time = 11 min
X = 4 -> time = 7.4 min
X = 2 -> time = 4.4 min
X = 1 -> time = 3.3 min
有人可以解释为什么会这样吗?另外,如果我在内核较少的机器上运行相同的程序,是否可以确定执行时间会减少?有机会保持原样吗?