Преобразование scala.collection.Итерируемый в список Java

#java #scala #apache-spark

#java #scala #apache-spark

Вопрос:

Я пытаюсь преобразовать scala.collection.Iterable<Row> to a java list , но это не позволяет мне выдавать исключение соответствия. Я использовал

scala.collection.JavaConversions .asJavaCollection

Я получаю сообщение об ошибке :

Метод asJavaCollection(итерируемый) в типе JavaConversions неприменим для аргументов (итерируемых)

Здесь строка

класс org.apache.spark.sql.Row

Как я могу это решить? Любой другой способ сделать это. Я новичок в преобразованиях scala в java.

Ответ №1:

Вы можете использовать фрагмент кода ниже, который сопоставляется с функцией вызова JavaRDD и возвращает список объектов. В вашем случае вы можете переопределить поведение функции вызова для достижения своей цели.

 List<Object> resultList = dataFrame.javaRDD().map(new Function<Row, Object>() {
    public Object call(Row row) {return row.getString(0); }
}).collect();
  

или

просто используя import collection.JavaConverters._

 val input = "your Iterable Collection".asJava
val result = java.util.Arrays.asList(input)