Jia*_*ang 9 scala apache-spark
如何转换org.apache.spark.mllib.linalg.Matrix为RDD[org.apache.spark.mllib.linalg.Vector]Spark?
矩阵是从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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7587 次 |
| 最近记录: |