我有一个代码页需要花费数小时才能运行,我希望不会超过几分钟。我跑边看着控制台,看起来特别挂在这个部分
def getListComponents(p):
pair = []
for i in range(len(p)):
pair.append((i, p[i]))
return pair
def addPoints(p1, p2):
summedPoint = []
for i in range(len(p1)):
summedPoint.append(p1[i] + p2[i])
return summedPoint
for i in range(len(newCentroids)): # len(newCentroids) = 4
(cnumerator
.append(wTmx.map(lambda p: getListComponents(p))
.map(lambda p: p[i])
.reduceByKey(lambda p1, p2 : addPoints(p1, p2))))
我已经读到增加内存可能会有所帮助,我已经尝试过2gs到4gs,但看不到任何改进。
--executor-memory=3g
我还读到,更改默认并行性可以提供帮助,每台机器设置2-3个是理想的(我正在运行三个集群)
--default-parallelism=9
但这没有效果。
所以现在我假设问题在于我显然无法编写有效的代码。有没有办法让我改变这个代码来做同样的事情(整个程序按预期工作),但是花费的时间少得多?
感谢。