标签: scala apache-spark spark-streaming
因为我们可以使用可变对象作为spark中的广播变量,这意味着工作节点可以很容易地更改该对象的状态。
有什么方法可以限制工作节点不修改可变对象?
答案 0 :(得分:0)
对象被序列化,发送给所有工作者,并在每个对象中分别反序列化。如果一个工作人员对对象进行了变异,则只会影响该工作人员。因此实际上,它已经是不可变的。
如果要限制它,以至于工作人员都无法在自己的JVM中进行更改,则应该只使用不可变的对象。如有必要,请创建一个不变的包装器或在该可变对象周围进行复制,并进行广播。