【问题标题】:Convert RDD of Matrix to RDD of Vector将Matrix的RDD转换为Vector的RDD
【发布时间】:2021-11-30 20:47:20
【问题描述】:
【问题讨论】:
标签:
scala
apache-spark
apache-spark-mllib
【解决方案1】:
在code to convert Matrix 到Seq[Vector] 上使用flatMap:
// from https://stackoverflow.com/a/28172826/1206998
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)
注意:这段代码我没有测试,但原理是这样的