有什么其他方法可以使用collect_list来获取具有列值列表的列而无需使用

时间:2019-07-12 14:29:00

标签: group-by pyspark aggregate-functions collect

我目前正在使用收集列表来实现此结果,但是这需要更多时间。

df= df.groupBy("col1").agg(collect_list(df['col2']).alias('col2'))

输入df:

+----+----+
|col1|col2|
+----+----+
|a   |x   |
|a   |y   |
|b   |y   |
+----+----+

collect_list当前可实现预期的输出,但是正在尝试寻找另一种方法:

+----+----+
|col1|col2|
+----+----+
|a   |x,y |
|b   |y   |
+----+----+

我正在尝试使用split和join实现相同的目的。像下面这样的东西,我无法弄清楚确切的语法。

def list_cols(cols):
    return [','.join(val.split()) for val in cols]
df = df.groupBy('col1').agg(list_cols(meta["cols"]))

0 个答案:

没有答案
相关问题