我有下面的行,用空格分割单词,我有地图功能,我希望通过我的自定义功能来操作我的学习和理解更好
val wordList = dataRdd.flatMap(x=>x.split(" ")).map(x=>(myMap(x)))
def myMap(word:String)
{
if(wordMap.contains(word))
{
var value:Int = wordMap.get(word).get
wordMap+=(word->(value+1))
}else
{
wordMap+=(word->1)
}
}
我有地图,我正在检查单词,如果有,我正在递增1并更新地图 什么应该是myMap函数的返回类型,结果如何存储在wordList?
中有人可以解释一下吗?
答案 0 :(得分:0)
不能这样做(只需阅读关于闭包的Spark Programming Guide)。
你试图解决的问题只是一个字数:
dataRdd.flatMap(_.split(" ").map((_, 1L))).reduceByKey(_ + _).collectAsMap