如何在Apache Spark中创建一个空的RowMatrix

时间:2015-09-25 05:52:49

标签: apache-spark

有没有办法在Apache Spark中创建一个空的RowMatrix。我试过以下

double[] empty = new double[0];
Vector vector = Vectors.dense(empty);

但我无法从vector创建Vector的JavaRDD,因此我可以从中创建RowMatrix。

先谢谢。

1 个答案:

答案 0 :(得分:1)

https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.linalg.distributed.RowMatrix看,无法创建空的RowMatrix

因此构造函数需要传递RDD< Vector>作为呼唤方式之一

我在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上执行所需的操作,而数据是RDD< Vector>

另外,Vectors.dense需要一个Arrays列表为Double,因此我们可能需要将初始数组设置为Double,如果它还没有。