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