Apache Spark 的非确定性来源

sav*_*ava 5 non-deterministic apache-spark

我试图找出 Spark 中非确定性的所有来源。我知道不确定性可能来自用户提供的函数,例如在 map(f) 中,f 涉及随机。相反,我正在寻找可能导致非确定性的操作,无论是在较低级别的转换/操作方面,例如改组。

zer*_*323 3

我的头顶上浮现出:

  • 需要混洗(或一般的网络流量)的操作可能会以不确定的顺序输出值。它包括明显的情况,例如groupBy*join。一个不太明显的例子是排序后的平局顺序

  • 依赖于不断变化的数据源或可变全局状态的操作

  • 在转换内部执行的副作用,包括accumulator更新