【问题标题】:How to convert apache.spark.ml.linalg.Vector to arrayList in java?java - 如何在java中将apache.spark.ml.linalg.Vector转换为arrayList?
【发布时间】:2023-04-01 10:00:01
【问题描述】:
我正在尝试在 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】:
您不能直接将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));
}