【问题标题】:How to create an empty RowMatrix in Apache Spark如何在 Apache Spark 中创建一个空的 RowMatrix
【发布时间】: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


    【解决方案1】:

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

    所以构造函数需要传递一个 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 如果它还没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      相关资源
      最近更新 更多