如何在spark中将矩阵转换为RDD [Vector]
How to convert matrix to RDD[Vector] in spark
如何在 Spark 中将 org.apache.spark.mllib.linalg.Matrix
转换为 RDD[org.apache.spark.mllib.linalg.Vector]
?
矩阵是从SVD生成的,我正在使用SVD的结果进行聚类分析。
MLlib 的Matrix
是一个小的局部矩阵。在本地分析它可能比把它变成一个 RDD 更有效。
无论如何,如果您的聚类仅支持 RDD 作为其输入,那么您可以通过以下方式进行转换:
import org.apache.spark.mllib.linalg._
def toRDD(m: Matrix): RDD[Vector] = {
val columns = m.toArray.grouped(m.numRows)
val rows = columns.toSeq.transpose // Skip this if you want a column-major RDD.
val vectors = rows.map(row => new DenseVector(row.toArray))
sc.parallelize(vectors)
}
如何在 Spark 中将 org.apache.spark.mllib.linalg.Matrix
转换为 RDD[org.apache.spark.mllib.linalg.Vector]
?
矩阵是从SVD生成的,我正在使用SVD的结果进行聚类分析。
MLlib 的Matrix
是一个小的局部矩阵。在本地分析它可能比把它变成一个 RDD 更有效。
无论如何,如果您的聚类仅支持 RDD 作为其输入,那么您可以通过以下方式进行转换:
import org.apache.spark.mllib.linalg._
def toRDD(m: Matrix): RDD[Vector] = {
val columns = m.toArray.grouped(m.numRows)
val rows = columns.toSeq.transpose // Skip this if you want a column-major RDD.
val vectors = rows.map(row => new DenseVector(row.toArray))
sc.parallelize(vectors)
}