-1
我創建了一個可變集合並使用'foreach'遍歷列表來遍歷集合。當我在foreach中打印集合時,它會正確打印集合的內容。但是,在'foreach'結束後,該集合是空的。我無法弄清楚我缺少的東西。Scala:添加元素以在'foreach'內部設置不會持續
import org.apache.spark._
import org.apache.spark.graphx._
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
object SparkTest {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Test")
val sc = new SparkContext(conf)
val graph = GraphLoader.edgeListFile(sc, "followers.txt")
val edgeList = graph.edges
var mapperResults = iterateMapper(edgeList)
sc.stop()
}
def iterateMapper(edges: EdgeRDD[Int, Int]) : scala.collection.mutable.Set[(VertexId, VertexId)] = {
var mapperResults = scala.collection.mutable.Set[(VertexId, VertexId)]()
val mappedValues = edges.mapValues(edge => (edge.srcId, edge.dstId)) ++ edges.mapValues(edge => (edge.dstId, edge.srcId))
mappedValues.foreach {
edge => {
var src = edge.attr._1
var dst = edge.attr._2
mapperResults += ((src, dst))
}
}
println(mapperResults)
return mapperResults
}
}
這是我正在使用的代碼。這是Spark的一個修改示例。
的
println(mapperResults)
打印出一個空集。
向我們顯示代碼。 – 2014-10-28 18:12:00
添加了代碼。 – Vijay 2014-10-28 18:23:14
當我在REPL中嘗試時,工作得很好。 – vptheron 2014-10-28 18:25:24