行最大的Coordinate Matrix Spark

时间:2016-08-26 15:13:00

标签: apache-spark rdd

我有一个名为mat的spark.mllib.linalg.distributed.CoordinateMatrix,我希望计算这个稀疏矩阵的行最大值。我知道mat.entries是将mat的内容存储为MatrixEntry(i,j,v)的rdd。现在我希望找到最明显的行。即我需要找到每个i,所有j的最大值v。我应该怎么做呢?

到目前为止,我有这个:

val mat_RowMatrix = mat.toRowMatrix() // found function toRowMatrix on github 
val max_entries = mat_RowMatrix.rows.map{_.toArray.max}

但我需要找到argmax(最大值的索引)而不是值本身。我在哪里可以找到这方面的文件?我想我必须使用maxBy,但不知道如何使用它。还有,有更好的方法来做这一切吗?

某些方向会有很大帮助。

1 个答案:

答案 0 :(得分:0)

RowMatrix.rows为您提供RDD[Vector],而Vector已通过argmax功能提供此功能。所以你可以这样做:

val maxEntries = matRowMatrix.rows.map{_.argmax}