#apache-spark
Вопрос:
У меня есть набор данных, из которого я хочу извлечь столбец значений в список, как этого добиться ? Я пытался :
List<Row> rows = dF.select("col1").collectAsList();
Но тогда как перебирать значения col1 ?
Спасибо
Ответ №1:
Вы можете выполнить итерацию по списку строк так же, как вы можете выполнить итерацию по любому списку. Например: Предполагая, что вы хотите получить доступ к первому столбцу (строковому типу) всех строк, вы можете использовать следующий фрагмент кода
import scala.collection.JavaConversions.asScalaBuffer
val rows = df.select("col1").collectAsList();
rows.map(r => r.getAs[String](0))
Комментарии:
1. на ЯВЕ, пожалуйста !
Ответ №2:
Именно так вы можете выполнить итерацию по списку , выбранному из a column
, но это не рекомендуется, если столбец слишком велик, чтобы поместиться в узле драйвера
df.select("col1").collectAsList()
.stream().forEach(row -> System.out.println(row.getString(0)));
Существуют другие функции для другого типа данных, чтобы получить значение из Row
like getString
, getLong
и т. getInt
Д