【发布时间】:2015-04-27 21:38:19
【问题描述】:
我有一个关于沿矩阵行查找最大值索引的问题。如何在 Spark Scala 中做到这一点?这个函数就像 Python 中 numpy 中的 argmax。
【问题讨论】:
标签: scala matrix apache-spark max
我有一个关于沿矩阵行查找最大值索引的问题。如何在 Spark Scala 中做到这一点?这个函数就像 Python 中 numpy 中的 argmax。
【问题讨论】:
标签: scala matrix apache-spark max
你的矩阵是什么类型的?如果是RowMatrix,您可以使用rows 访问其行向量的RDD。
如果我理解正确的话,找到这个RDD[Vector] 的每个向量的最大值很简单。因此,您可以myMatrix.rows.map{_.toArray.max}。
如果您有DenseMatrix,您可以将其转换为Array,此时您将拥有row-major form 中的元素列表。也可以通过numCols获取矩阵的列数,然后使用集合方法grouped获取行数。
myMatrix.toArray.grouped(myMatrix.numCols).map{_.max}
【讨论】:
我认为您必须将值作为数组获取才能获得最大值。
val dm: Matrix = Matrices.dense(3, 2, Array(1.0, 3.0, 5.0, 2.0, 4.0, 6.0))
val result = dm.toArray.max
println(result)
【讨论】: