我想在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)'
我怎样才能做到这一点?
你无法直接将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));
}