【发布时间】:2018-09-21 01:53:13
【问题描述】:
由于我们可以使用可变对象作为spark中的广播变量,这意味着该对象的状态可以很容易地被工作节点改变。
有什么方法可以限制工作节点不修改可变对象?
【问题讨论】:
标签: scala apache-spark spark-streaming
由于我们可以使用可变对象作为spark中的广播变量,这意味着该对象的状态可以很容易地被工作节点改变。
有什么方法可以限制工作节点不修改可变对象?
【问题讨论】:
标签: scala apache-spark spark-streaming
对象被序列化,发送给所有工作人员,并分别在每个工作人员中进行反序列化。如果一个工人改变了对象,它只会影响那个工人。所以实际上,它已经是不可变的了。
如果您想限制它以使即使工作人员也无法在他们自己的 JVM 中发生变异,您应该简单地使用不可变对象。如有必要,创建一个不可变的包装器或复制可变对象并广播它。
【讨论】: