我试图找出Spark中所有非确定性的来源。我知道非确定性可以来自用户提供的功能,例如在地图(f)中,f涉及随机。相反,我正在寻找可能导致非确定性的操作,无论是在较低级别的转换/动作方面,例如改组。
答案 0 :(得分:1)
脱离我的头顶:
需要改组(或一般网络流量)的操作可能以非确定性顺序输出值。它包含明显的案例,例如groupBy*
或join
。一个不太明显的例子是排序后的关系顺序
依赖于不断变化的数据源或可变的全局状态的操作
在转化中执行的副作用,包括accumulator
更新