如何打印java中RowMatrix的元素?

How to print the element of RowMatrix in java?

RowMatrix mat = new RowMatrix(parsedData.rdd());
Matrix pc = mat.computePrincipalComponents(1);
RowMatrix projected = mat.multiply(pc);

我需要打印使用 [​​=14=]

投影的 RowMatrix 中的元素

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 对于分布式数据结构来说是一个糟糕的选择。