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