全新的 Apache Spark,我有点困惑如何更新.mapTriplets
GraphX 中迭代之外的值。见下文:
def mapTripletsMethod(edgeWeights: Graph[Int, Double], stationaryDistribution: Graph[Double, Double]) = {
val tempMatrix: SparseDoubleMatrix2D = graphToSparseMatrix(edgeWeights)
stationaryDistribution.mapTriplets{ e =>
val row = e.srcId.toInt
val column = e.dstId.toInt
var cellValue = -1 * tempMatrix.get(row, column) + e.dstAttr
tempMatrix.set(row, column, cellValue) // this doesn't do anything to tempMatrix
e
}
}
我猜这是由于 an 的设计,RDD
并且没有简单的方法来更新tempMatrix
值。当我运行上面的代码时,该tempMatrix.set
方法什么也不做。尝试在调试器中跟踪问题是相当困难的。
有没有人有一个简单的解决方案?谢谢!
编辑
我在上面进行了更新以显示这stationaryDistribution
是一个图表 RDD。