Spark version 1.60
, Scala version 2.10.5
.
У меня есть spark-sql
фрейм данных df
, как это,
+-------------------------------------------------+
|addess | attributes |
+-------------------------------------------------+
|1314 44 Avenue | Tours, Mechanics, Shopping |
|115 25th Ave | Restaurant, Mechanics, Brewery|
+-------------------------------------------------+
С этого фрейма я хотел бы значения какниже,
Tours, Mechanics, Shopping, Brewery
Если я сделаю это,
df.select(df("attributes")).collect().foreach(println)
Я получу,
[Tours, Mechanics, Shopping]
[Restaurant, Mechanics, Brewery]
Я думал, что мог бы использовать flatMap
вместо найденного this , поэтому попытался поместить это в переменную, используя
val allValues = df.withColumn(df("attributes"), explode("attributes"))
, но я получаю ошибку:
error: несоответствие типов;
найдено: org.apache.spark.sql.column
обязательно: строка
Я думал, смогу ли я получить вывод, используя explode
Я могуиспользуйте distinct
, чтобы получить уникальные значения после их выравнивания.
Как получить желаемый результат?