我正在尝试并行化以下python脚本。
import random
tmp = []
cur = 100
while len(tmp) < 1000:
condition = random.choice([True, False])
if condition:
amt = cur * 0.1
tmp.append(amt)
cur = cur - amt
else:
cur = cur + 5
print(sum(tmp))
我知道我可以首先并行化大小为1000的数组并使用map
来获取condition
的值,例如:
import random
x = range(1001)
rdd = sc.parallelize(x).map(lambda _:random.choice([True, False]))
print rdd.collect()
但是,我陷入了减少逻辑。