Scala DataRicks:Dataframe groupby agg,收集器集包含重复值

Scala DataRicks:Dataframe groupby agg,收集器集包含重复值,scala,apache-spark,dataframe,databricks,Scala,Apache Spark,Dataframe,Databricks,假设我有一个数据集df,如下所示 col1 col2 1 A 1 B 1 C 2 B 2 B 2 C 我想使用col1创建数据集,并使用以下代码将col2作为数组 var df2=df.groupBy("col1").agg(collect_set("col2").alias("col2")) 那么df2将是 COl1 Col2 1 A,B,C 2 B,C 如何更改代码以便 COl1 Co

假设我有一个数据集df,如下所示

col1   col2 
1      A
1      B
1      C
2      B
2      B
2      C
我想使用col1创建数据集,并使用以下代码将col2作为数组

var df2=df.groupBy("col1").agg(collect_set("col2").alias("col2"))
那么df2将是

COl1    Col2
1       A,B,C
2       B,C
如何更改代码以便

COl1    Col2
1       A,B,C
2       B,B,C
您可以使用collect_list而不是collect_set,因为collect_set返回一组具有重复元素的对象:


谢谢。

@MichaelChau:这是我的荣幸。请接受答案并投票表决。
scala> var df2=df.groupBy("col1").agg(collect_list("col2").alias("col2"))
df2: org.apache.spark.sql.DataFrame = [col1: int, col2: array<string>]
scala> df2.show
+----+---------+
|col1|     col2|
+----+---------+
|   1|[a, b, c]|
|   2|[b, b, c]|
+----+---------+