我需要将两列 Dataframe 转换为按其中一列分组的列表。我已经在 pandas 中成功完成了:
expertsDF = expertsDF.groupby('session', as_index=False).agg(lambda x: x.tolist())
但现在我正尝试在 pySpark 中做同样的事情,如下所示:
expertsDF = df.groupBy('session').agg(lambda x: x.collect())
我收到错误:
all exprs should be Column
我已经尝试了几个命令,但我就是无法正确执行。并且 spark 文档不包含类似的内容。
它的一个示例输入是数据框:
session name
1 a
1 b
2 v
2 c
输出:
session name
1 [a, b....]
2 [v, c....]
最佳答案
您还可以使用 pyspark.sql.functions.collect_list(col)功能:
from pyspark.sql.functions import *
df.groupBy('session').agg(collect_list('name'))
关于python - 将 Pandas 转为 pyspark 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194392/