2016-08-26 6 views
0

私はspark.mllib.linalg.distributed.CoordinateMatrixというマットを持っています。このスパース行列の行方向の最大値を計算したいと思います。私はmat.entriesがマットの内容をMatrixEntry(i,j,v)として保存していることを知っています。今私はマットの行の賢明な最大値を見つけることを望む。つまり、すべての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

私はこれが[この質問の複製(http://stackoverflow.com/q/29891465/1804173)を見た。しかし、与えられたすべての答えは実際には問題を扱っていません。 – bluenote10

答えて

0

RowMatrix.rowsRDD[Vector]となり、Vectorは既にargmax機能でこの機能を提供しています。だからあなたはすることができます:

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

ありがとう!それは動作します。 – SashaGreen

関連する問題