Re: [問題] 想在Scala的RDD物件中更新變量

作者: ogre0403 (肚子餓)   2017-03-20 18:12:55
這應該算是 Spark的問題,不算Java也不算Scala的問題…
你最終的目的是要產生key value pair的集合嗎?
如果是的話,你需要的應該是用RDD的map operation產生一個key value pair RDD
※ 引述《iwantstronge (...)》之銘言:
: 版友們好~
: 最近剛學Scala, 有個問題卡了很久
: 當我把檔案用RDD讀進來:
: val input = sc.textfile("myfile.txt")
: 接著逐行讀取這個檔案(RDD),
: 在裡面用一個容器(HashMap, Array, List之類的)儲存每一行的一些資訊
: 例如:
: input.foreach{line=>
: var value = line.toInt
: hashmap.put(value,1) // hashmap是在外面先定義好的一個HashMap容器
: }
: 因為RDD本身是分散式被serilize到各個node(?),
: 所以不會去更新我傳到裡面的hashmap, 這個hashmap在foreach以外依然是空的~
: 請問我是否有任何辦法能把foreach裡面的hashmap傳出來,以便下一步處理呢~?
: 小弟新手, stackoverflow跟google找了兩天都沒啥頭緒~
: 還請高手指點~!! 感謝~!
作者: iwantstronge (...)   2017-03-21 08:30:00
感謝~ 我太糾結於要把容器傳出來這件事上,擅用RDD的api會簡單很多, 不過有個問題是我在後續操作必須要提取RDD的元素,例如用lookup()函數,但是這個函數顯然是O(n),在時間效率上很差,我能想到的是先把RDD存cache

Links booklink

Contact Us: admin [ a t ] ucptt.com