#java #arraylist #type-conversion #apache-spark-mllib
#java #arraylist #преобразование типов #apache-spark-mllib
Вопрос:
Я пытаюсь преобразовать apache.spark.ml.linalg.Vector
ArrayList
в Java.
Исходный код выглядит следующим образом:
Vector vector = (Vector) row.get(1);
ArrayList<String> vectorList = new ArrayList<String>(vector);
ошибка:
Cannot resolve constructor
'ArrayList(org.apache.spark.ml.linalg.Vector)'
Как я могу это сделать?
Ответ №1:
Вы не можете преобразовать a Vector
в an ArrayList<String>
напрямую. Vector
предоставляет toArray()
метод (документацию), который возвращает массив типа 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));
}