我有2列说ID, value
我的类型为Int
,值类型为List[String]
。
我正在重复ID以使其独一无二我现在在My DataFrame上应用GroupBy("id")
我的问题是我想要将值相互追加并且值列必须是不同的。
示例: - 我有一个像
这样的数据+---+---+
| id| v |
+---+---+
| 1|[a]|
| 1|[b]|
| 1|[a]|
| 2|[e]|
| 2|[b]|
+---+---+
我希望我的输出像这样
+---+---+--
| id| v |
+---+-----+
| 1|[a,b]|
| 2|[e,b]|
我试过这个: -
val uniqueDF = df.groupBy(“id”)。agg(collect_list(“v”)) uniqueDf.map {row => (row.getInt(0), row.getAsSeq [字符串] .toList.distinct)}
groupBy()
在agg()
之后说或我不想应用地图操作时,我可以这样做吗
感谢
答案 0 :(得分:0)
val uniqueDF = df.groupBy("id").agg(collect_set("v"))
Set将只有唯一值