我想看看我的程序的执行时间如何随着不同数量的分区而变化。我用一台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
有人可以解释为什么会这样吗?另外,如果我在核心较少的机器上运行相同的程序,那么确定执行时间会减少吗?有没有机会保持不变?