【问题标题】:Databricks: Dataframe groupby agg, collector set include duplicate valuesDatabricks:Dataframe groupby agg,收集器集包含重复值
【发布时间】:2019-10-21 13:04:46
【问题描述】:

假设我有一个如下所示的数据集 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

【问题讨论】:

    标签: scala apache-spark dataframe databricks


    【解决方案1】:

    你可以用collect_list代替collect_set,因为collect_set返回a set of objects with duplicate elements eliminate

    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]|
    +----+---------+
    

    谢谢。

    【讨论】:

    • @MichaelChau:这是我的荣幸。请接受答案并投票。
    猜你喜欢
    • 2014-09-17
    • 2021-04-20
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 2016-01-06
    相关资源
    最近更新 更多