【问题标题】:How to print the element of RowMatrix in java?如何在java中打印RowMatrix的元素?
【发布时间】:2016-05-28 17:28:41
【问题描述】:
RowMatrix mat = new RowMatrix(parsedData.rdd());
Matrix pc = mat.computePrincipalComponents(1);
RowMatrix projected = mat.multiply(pc);

我需要打印使用 java 投影的 RowMatrix 中的元素

【问题讨论】:

    标签: java apache-spark apache-spark-mllib


    【解决方案1】:

    RowMatrix 是一种分布式数据结构,可靠输出其内容的唯一方法是将数据获取到驱动程序并在本地打印。通常这是您要避免的操作,但一般方法如下

    val mat: RowMatrix = ???
    mat
      .rows // Extract RDD[org.apache.spark.mllib.linalg.Vector]
      .collect // you can use toLocalIterator to limit memory usage
      .foreach(println) // Iterate over local Iterator and print
    

    Java 等价物是这样的:

    List<Vector> vs = mat.rows().toJavaRDD().collect();
    for(Vector v: vs) {
        System.out.println(v);
    }
    

    实际上应该不需要这样的操作。如果您的数据小到可以在本地处理,则没有理由使用DistributedMatrix。如果数据很大但很宽,那么RowMatrix 对于分布式数据结构来说是一个糟糕的选择。

    【讨论】:

    • 谢谢。我正在尝试使用它在 Scala 中使用小矩阵调试我的代码。但是,在运行 val mat=RowMatrix=??? 时会出现 cala.NotImplementedError: an implementation is missing 错误。我错过了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多