gpt4 book ai didi

scala - Spark agg 为多列收集单个列表

转载 作者:行者123 更新时间:2023-12-04 14:41:19 25 4
gpt4 key购买 nike

这是我当前的代码:

pipe_exec_df_final_grouped = pipe_exec_df_final.groupBy("application_id").agg(collect_list("table_name").alias("tables"))

但是,在我收集的列表中,我想要多个列值,因此聚合列将是一个数组数组。目前的结果是这样的:
1|[a,b,c,d]
2|[e,f,g,h]

但是,我还想将另一列附加到聚合(我们称之为“状态”列名)。所以我的新输出将是:
1|[[a,pass],[b,fail],[c,fail],[d,pass]]
...

我试过 collect_list("table_name, status")然而 collect_list只需要一个列名。我怎样才能完成我想要做的事情?

最佳答案

使用 array先将列收集到数组列中,然后应用 collect_list :

df.groupBy(...).agg(collect_list(array("table_name", "status")))

关于scala - Spark agg 为多列收集单个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com