如何在spark中编写自定义地图功能?

时间:2017-12-03 14:50:18

标签: apache-spark

我有下面的行,用空格分割单词,我有地图功能,我希望通过我的自定义功能来操作我的学习和理解更好

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?

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

不能这样做(只需阅读关于闭包的Spark Programming Guide)。

你试图解决的问题只是一个字数:

dataRdd.flatMap(_.split(" ").map((_, 1L))).reduceByKey(_ + _).collectAsMap