Apache Spark的非确定性来源

5

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

1个回答

3

以下是我能够想到的:

  • 需要洗牌(或网络流量总体)的操作可能会以非确定性顺序输出值。这包括明显的情况,如groupBy*join,一个不太明显的例子是排序后并列项的顺序。

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

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


你能举一个转换中的副作用的例子吗? - savx2
与外部系统通信,写入文件,更新“全局”执行器状态。 - zero323
1
不要忘记几乎所有获取时间戳或环境变量的操作,因为它们会因节点而异。 - Roberto Congiu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接