【发布时间】:2019-07-05 07:23:19
【问题描述】:
我对 Spark 中的矩阵有疑问。
假设我有一个名为 X 的 RowMatrix,如下所示:
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 是基于行的?我不太确定,并且本地密集矩阵以列优先顺序存储,因此顺序混乱。
有人可以帮我如何实现吗?
【问题讨论】:
标签: scala apache-spark matrix rdd apache-spark-mllib