Matrix Transpose on RowMatrix in Spark

前端 未结 6 1193
梦谈多话
梦谈多话 2020-12-16 15:20

Suppose I have a RowMatrix.

  1. How can I transpose it. The API documentation does not seem to have a transpose method.
  2. The Matrix has the transpose() me
6条回答
  •  抹茶落季
    2020-12-16 16:14

    Getting the transpose of RowMatrix in Java:

    public static RowMatrix transposeRM(JavaSparkContext jsc, RowMatrix mat){
    List newList=new ArrayList();
    List vs = mat.rows().toJavaRDD().collect();
    double [][] tmp=new double[(int)mat.numCols()][(int)mat.numRows()] ;
    
    for(int i=0; i < vs.size(); i++){
        double[] rr=vs.get(i).toArray();
        for(int j=0; j < mat.numCols(); j++){
            tmp[j][i]=rr[j];
        }
    }
    
    for(int i=0; i < mat.numCols();i++)
        newList.add(Vectors.dense(tmp[i]));
    
    JavaRDD rows2 = jsc.parallelize(newList);
    RowMatrix newmat = new RowMatrix(rows2.rdd());
    return (newmat);
    }
    

提交回复
热议问题