python - 将 Pandas 转为 pyspark 表达式

标签 python pandas apache-spark group-by pyspark

我需要将两列 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/

相关文章:

Python Pandas 'head' 属性不起作用

python - 素数生成器中的段错误

python - 被正则表达式难住了

python - 向 Pandas 索引添加一个值

apache-spark - Spark Streaming forEachBatch 在写入数据库时​​给出不一致/无序的结果

python - 从发送到 spark-submit 的外部 __main__ 文件修改 SparkContext

python 应用程序 - xcb 插件失败

python - 在 pd.DataFrame 中插入一行而不加载文件

python - 在另一个 csv 文件中查找一个 csv 文件的值,使用第三个 csv 文件作为映射

scala - 使用 apache Ignite 共享 sparkRDD