Scala DataRicks:Dataframe groupby agg,收集器集包含重复值
假设我有一个数据集df,如下所示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
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]|
+----+---------+