Как преобразовать apache.spark.ml.linalg.Вектор в ArrayList на Java?

#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));
        }