我有一个叫做mat的spark.mllib.linalg.distributed.CoordinateMatrix
,我想计算这个稀疏矩阵的逐行最大值。我知道mat。entries是rdd它将mat的内容存储为MatrixEntry(i,j,v)
。现在我希望找到逐行的最大值,也就是说,我需要找到对于每一个I, v除以所有j的最大值。我该怎么做呢?
到目前为止,我有这个:
val mat_RowMatrix = mat.toRowMatrix() // found function toRowMatrix on github
val max_entries = mat_RowMatrix.rows.map{_.toArray.max}
但我需要找到argmax(最大值的索引),而不是值本身。我在哪里可以找到相关的文档?我想我必须使用maxBy,但不知道如何使用它。还有,有没有更好的方法来做这一切?
给点指示会很有帮助的。
RowMatrix.rows
给出了RDD[Vector]
, Vector
已经通过argmax
函数提供了这个功能。你可以输入:
val maxEntries = matRowMatrix.rows.map{_.argmax}