如何将分布式矩阵投射到局部矩阵中;我面临这个错误,在spark集群中投射矩阵。
Matrix x_matrix = (Matrix) x_mat;
y_mat.multiply(x_matrix);
SingularValueDecomposition<RowMatrix, Matrix> svd = y_mat.computeSVD(10, true, 1.0E-9d);
// cast
Matrix U = (Matrix) svd.U(); // The U factor is a RowMatrix.
Vector s = svd.s(); // The singular values are stored in a local dense vector.
Matrix V = svd.V(); // The V factor is a local dense matrix.
错误
Exception in thread "main" java.lang.ClassCastException: org.apache.spark.mllib.linalg.distributed.RowMatrix cannot be cast to org.apache.spark.mllib.linalg.Matri
at com.apache.spark.project6.rmsd.Kabsch(rmsd.java:101)
at com.apache.spark.project6.rmsd.main(rmsd.java:227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.openstack.sahara.edp.SparkWrapper.main(SparkWrapper.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)