【发布时间】:2015-09-25 14:43:17
【问题描述】:
有没有办法在 Apache Spark 中创建一个空的 RowMatrix。我已经尝试了以下
double[] empty = new double[0];
Vector vector = Vectors.dense(empty);
但是我不能从vector创建一个Vector的JavaRDD,所以我可以从中创建RowMatrix。
提前致谢。
【问题讨论】:
标签: apache-spark
有没有办法在 Apache Spark 中创建一个空的 RowMatrix。我已经尝试了以下
double[] empty = new double[0];
Vector vector = Vectors.dense(empty);
但是我不能从vector创建一个Vector的JavaRDD,所以我可以从中创建RowMatrix。
提前致谢。
【问题讨论】:
标签: apache-spark
所以构造函数需要传递一个 RDD
我在 Scala 的 spark-shell 中尝试了一个示例。希望这会有所帮助
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.linalg.distributed.RowMatrix
val data = sc.parallelize(Array(Array[Double](1,2,3,4),Array[Double](2,3,4,5),Array[Double](3,4,5,6))).map(x=> Vectors.dense(x))
val rowMatrix: RowMatrix = new RowMatrix(data)
现在我们可以对类型为 RowMatrix 的 rowMatrix 执行所需的操作,而 data 为 RDD
Vectors.dense 还需要一个数组列表作为 Double 所以我们可能需要将初始数组的大小写为 Double 如果它还没有。
【讨论】: