我有一個代碼:
從進口睡眠時間隨機導入隨機算子導入添加def f (int) - >浮動:睡眠(0.1)隨機()返回rdd1 = sc.parallelize(範圍(20),2)rdd2 = sc.parallelize(範圍(20),2)rdd3 = sc.parallelize(範圍(20),2)打印(a1:結果,rdd1.map (f) .reduce(添加)打印(結果a2:, rdd2.map (f) .reduce(添加)打印(結果a3:, rdd3.map (f) .reduce(添加)打印(“結果b3:”,和((f(一)範圍(20))))打印(結果b3:, sum ([f(一)範圍(20))))打印(結果b3:, sum ([f(一)範圍(20))))
樣本的結果:
結果a1: 9.80073680418538結果a2: 9.80073680418538結果a3: 9.80073680418538結果b3: 9.219767385799257結果b3: 8.175800896981904結果b3: 9.417623482504323
可能有人解釋我為什麼結果*有相同的價值?在我看來,所有結果行應該是彼此不同的。
如何正確的代碼來確保結果是不同的嗎?
使用運行時10和12進行了測試。