gpt4 book ai didi

scala - 如何在Spark中将矩阵转换为RDD [Vector]

转载 作者:行者123 更新时间:2023-12-04 04:10:56 27 4
gpt4 key购买 nike

如何在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)
}

关于scala - 如何在Spark中将矩阵转换为RDD [Vector],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com