У меня есть искра DF, как показано ниже.Мне нужно свернуть несколько строк с тем же идентификатором, что и одна строка, но значения должны быть разными.
id|values
1 |hello
1 |hello Sam
1 |hello Tom
2 |hello
2 |hello Tom
Ожидаемый результат
id|values
1 |hello, Sam, Tom
2 |hello, Tom
Я закончил с накопительной частью, но какотфильтровать дубликаты токенов?
Текущий код:
df.select("id","values")
.groupBy("id")
.agg(concat_ws(",", collect_list("values")))
2-я часть вопроса: Я также пытался через SQL, но отображаются также дубликаты.
spark.sql("select id, concat_ws(' ' ,collect_set(values)) as values from data group by id ").show(false)
+---+----------------------------+
|id |values |
+---+----------------------------+
|1 |hello hello Sam hello Tom |
|2 |hello hello Tom |
+---+----------------------------+
Как избавиться от дубликатов в приведенном выше запросе