2015-12-09 74 views
2

我想弄清楚Spark中所有非確定性的來源。我明白,非確定性可以來自用戶提供的功能,例如在f(涉及隨機)的地圖(f)中。相反,我正在尋找可能導致非確定性的操作,無論是在較低級別的轉換/操作方面,例如洗牌。Apache Spark的非確定性的來源

回答

1

關閉我的頭頂:這需要改組(一般或網絡流量)

  • 操作可能在不確定的順序輸出值。它包括明顯的情況,如groupBy*join。一個不太明顯的例子是關係的分揀

  • 操作之後的命令依賴於該改變的數據源或一個可變的全局狀態內的變換執行

  • 的副作用,包括accumulator更新

+0

燦你舉了一個轉換中的副作用的例子嗎? –

+0

與外部系統通信,寫入文件,更新「全局」執行程序狀態。 – zero323

+1

幾乎不會忘記獲取時間戳或環境變量的任何操作,因爲它們因節點而異 –