我有一個名爲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