如何在java中将apache.spark.ml.linalg.Vector转换为arrayList?

问题描述 投票:0回答:1

我想在Java中将apache.spark.ml.linalg.Vector转换为ArrayList

源代码是这样的:

Vector vector = (Vector) row.get(1);
ArrayList<String> vectorList = new ArrayList<String>(vector);

错误是:

Cannot resolve constructor
'ArrayList(org.apache.spark.ml.linalg.Vector)'

我怎样才能做到这一点?

java arraylist type-conversion apache-spark-mllib
1个回答
1
投票

你无法直接将Vector转换为ArrayList<String>Vector提供了一个toArray()方法(documentation),它返回一个double类型的数组,使用它可以将它转换为ArrayList<String>,如下所示:

        Vector vector = (Vector) row.get(1);
        double[] vectorArray = vector.toArray();
        ArrayList<String> vectorList = new ArrayList<>();
        for (double vectorElement: vectorArray) {
            vectorList.add(String.valueOf(vectorElement));
        }
© www.soinside.com 2019 - 2024. All rights reserved.