У меня проблема с матрицами в Spark.
Предположим, у меня есть RowMatrix
с именем X, например:
0.5 0.5
0.25 0.0625
0.125 0.125
0.0625 0.0625
0.0625 0.25
Теперь я хочу умножить это RowMatrix
с транспонированной версией RowMatrix
X.
0.5 0.25 0.125 0.0625 0.0625
0.5 0.0625 0.125 0.0625 0.25
Теперь, насколько я знаю, я не могу умножить RowMatrix
на другую RowMatrix
, это должно быть RowMatrix
и локальная матрица.Поэтому я попытался преобразовать RowMatrix
в локальную плотную матрицу, используя этот код:
val arr = X.rows.map(x=>x.toArray).collect.flatten
val Xlocal = Matrices.dense(X.numRows.toInt,X.numCols.toInt,arr)
Но он не преобразуется должным образом, потому что RowMatrix
был основан на строках, я думаю?Я не совсем уверен, и локальная плотная матрица была сохранена в главном порядке столбцов, таким образом, порядок перепутан.
Может кто-нибудь помочь мне, как это реализовать?