我有一个名为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,但不知道如何使用它。还有,有更好的方法来做这一切吗?
某些方向会有很大帮助。
答案 0 :(得分:0)
RowMatrix.rows
为您提供RDD[Vector]
,而Vector
已通过argmax
功能提供此功能。所以你可以这样做:
val maxEntries = matRowMatrix.rows.map{_.argmax}