如何在Spark中正确加总.map函数内的整数?

时间:2016-11-24 22:30:33

标签: scala apache-spark

我是Scala和Spark的新手,尝试在Spark中创建一个类似RDD的对象,为每行指定一个Int作为键并将+1加总。

val mapUrls = urls.map{
var cont = 0
x => 
cont += 1
(cont,x)
}

问题在于,某种程度上,cont变量在一定时间后会回到1。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

这是你想要的吗?

urls.zipWithIndex.map(_.swap)

您的代码无法正常运行。请记住,Spark是分布式框架,没有共享内存。每项任务都有自己的cont更新。