【发布时间】:2020-11-24 01:32:52
【问题描述】:
我有一个火花 DF,如下所示。我需要将具有相同 ID 的多行汇总为单行,但值应该是不同的。
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")))
问题的第二部分: 我也通过 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 |
+---+----------------------------+
如何去除上述查询中的重复项
【问题讨论】:
标签: scala apache-spark