我是Scala和Spark的新手,尝试在Spark中创建一个类似RDD的对象,为每行指定一个Int作为键并将+1加总。
val mapUrls = urls.map{
var cont = 0
x =>
cont += 1
(cont,x)
}
问题在于,某种程度上,cont变量在一定时间后会回到1。
我做错了什么?
答案 0 :(得分:4)
这是你想要的吗?
urls.zipWithIndex.map(_.swap)
您的代码无法正常运行。请记住,Spark是分布式框架,没有共享内存。每项任务都有自己的cont
更新。