【发布时间】:2023-03-04 00:50:02
【问题描述】:
我是 Spark 和 Scala 的新手,我正在尝试阅读其关于 MLlib 的文档。
http://spark.apache.org/docs/1.4.0/mllib-data-types.html上的教程,
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.mllib.linalg.distributed.RowMatrix
val rows: RDD[Vector] = ... // an RDD of local vectors
// Create a RowMatrix from an RDD[Vector].
val mat: RowMatrix = new RowMatrix(rows)
// Get its size.
val m = mat.numRows()
val n = mat.numCols()
没有说明如何从局部向量列表构造 RDD[Vector](变量行)。
例如,我已经在 spark-shell 中执行(作为我探索的一部分)
val v0: Vector = Vectors.dense(1.0, 0.0, 3.0)
val v1: Vector = Vectors.sparse(3, Array(1), Array(2.5))
val v2: Vector = Vectors.sparse(3, Seq((0, 1.5),(1, 1.8)))
如果“合并”将看起来像这个矩阵
1.0 0.0 3.0
0.0 2.5 0.0
1.5 1.8 0.0
那么,如何将 Vectors v0、v1、v2 转换为 rows?
【问题讨论】:
-
val rows = sc.parallelize(Seq(v0, v1, v2))
标签: scala apache-spark