【发布时间】:2016-04-05 05:04:38
【问题描述】:
以这个简单的RDD为例说明问题:
val testRDD=sc.parallelize(List((1, 2), (3, 4), (3, 6)))
我有这个函数来帮助我实现索引:
var sum = 0;
def inc(l: Int): Int = {
sum += l
sum
}
现在我想为每个元组创建 id:
val indexedRDD= testRDD.map(x=>(x._1,x._2,inc(1)));
输出RDD应该是((1,2,1), (3,4,2), (3,6,3))
但事实证明所有的值都是一样的。所有元组都取 1:
((1,2,1), (3,4,1), (3,6,1))
我哪里出错了?有没有其他方法可以达到同样的效果。
【问题讨论】:
标签: scala apache-spark rdd