我正在尝试找出Spark中所有不确定性的来源。我知道,不确定性可能来自用户提供的函数,例如在涉及随机数的map(f)中使用f。相反,我正在寻找可以导致不确定性的操作,无论是在转换/操作方面还是在较低级别的操作(例如混洗)。
我正在尝试找出Spark中所有不确定性的来源。我知道,不确定性可能来自用户提供的函数,例如在涉及随机数的map(f)中使用f。相反,我正在寻找可以导致不确定性的操作,无论是在转换/操作方面还是在较低级别的操作(例如混洗)。
以下是我能够想到的:
需要洗牌(或网络流量总体)的操作可能会以非确定性顺序输出值。这包括明显的情况,如groupBy*
或join
,一个不太明显的例子是排序后并列项的顺序。
依赖于变化的数据源或可变全局状态的操作。
在转换中执行的副作用,包括accumulator
更新。