我有一个双打的IndexedRowMatrix。我想计算矩阵每行的总和,并将结果保存到Vector。之后我想播放这个载体。 我正在创建一个双打的RDD,其中包含总和,但我无法将其转换为矢量。 所以,问题基本上是如何从IndexedRowMatrix创建我想要的Vector。
答案 0 :(得分:1)
收集驱动程序并构造一个向量:
import org.apache.spark.mllib.linalg.{Vector, Vectors}
val sc: SparkContext = ???
val rdd: RDD[Double] = ???
val vec: Vector = Vectors.dense(rdd.collect)
val broadcastVec = sc.broadcast(vec)
参考文献:
https://spark.apache.org/docs/2.1.0/mllib-data-types.html#local-vector https://spark.apache.org/docs/latest/programming-guide.html#broadcast-variables