我是Spark的新手,我想使用方法更新RDD元素的内部状态rdd.foreach,但是它不起作用。这是我的代码示例:
class Test extends Serializable{
var foo = 0.0
var bar = 0.0
def updateFooBar() = {
foo = Math.random()
bar = Math.random()
}
}
var testList = Array.fill(5)(new Test())
var testRDD = sc.parallelize(testList)
testRDD.foreach{ x => x.updateFooBar() }
testRDD.collect().foreach { x=> println(x.foo+"~"+x.bar) }
Run Code Online (Sandbox Code Playgroud)
结果是:
0.0~0.0
0.0~0.0
0.0~0.0
0.0~0.0
0.0~0.0
Run Code Online (Sandbox Code Playgroud)