我有一个名为vertexDict一个文本文件,其中有由“\ 1”分裂多个键值对外界附加价值,我需要将其转换为一个地图在我的火花program.Here是我的代码:阶VAR未能获得foreach循环
var mapDict = Map[Long, String]()
sc.textFile(vertexDict).map(line=> line.split("\1")).foreach(a=>{
if(a.length ==2){
mapDict += a(0).toLong->a(1)
}
})
问题是mapDict仍然foreach循环结束后空的,但我debuged进入循环,并mapDict成功添加元素到它,因此我通过绕过这个问题:
val mapDict = sc.textFile(vertexDict).map(line=> line.split("\1")).map(a=>a(0).toLong->a(1)).collect().toMap
它的工作原理。但我仍然不知道为什么foreach未能添加。 谢谢!
的' “\ 1”'不编译。你能粘贴实际的代码吗? – Jus12
“\ 1”只是一个我使用的分隔符,可以是任何东西。这是我的实际代码,代码的其他部分是巨大的,并且对此问题没有任何影响。 – seabiscuit08
您的需要mapDict是可变的附加价值给它 – Hackaholic