将矩阵的 RDD 转换为向量的 RDD

Convert RDD of Matrix to RDD of Vector

我有一个 RDD[Matrix[Double]] 并想将其转换为 RDD[Vector](Matrix 中的每一行都将转换为一个 Vector)。

我看过类似 的相关答案,但它是一个 Matrix to RDD of Vector。虽然我的情况是矩阵的RDD。

MatrixSeq[Vector] 上使用 flatMap:

// from 
def toSeqOfVector(m: Matrix): Seq[Vector] = {
  val columns = m.toArray.grouped(m.numRows)
  val rows = columns.toSeq.transpose // Skip this if you want a column-major RDD.
  rows.map(row => new DenseVector(row.toArray))
}

val matrices: RDD[Matrix] = ??? // your input
val vectors:  RDD[Vector] = matrices.flatMap(toSeqOfVector)

注:这段代码我没有测试,但是原理是这样