首页 > 解决方案 > 多个列上的多个聚合

问题描述

我在 Pyspark 框架中使用 Python。我正在尝试使用在不同的列上应用不同的聚合groupby

我有一个带有列col1, col2,的 df col3col4 我想做类似的事情: df.groupby("col1").sum("col2", "col3").avg("col4")

但我收到一个错误:

'DataFrame' 对象没有属性 'avg' Traceback(最近一次调用最后一次):文件“/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/dataframe.py”,第 1301 行,在getattr 中'%s' 对象没有属性 '%s'" % ( self.class .name , name )) AttributeError: ' DataFrame ' 对象没有属性 'avg'

标签: pythonapache-sparkpyspark

解决方案


这就是我在模块中的做法:

import pyspark.sql.functions as Functions

df2=df.groupBy('col1').agg(Functions.sum('col2'),Functions.sum('col3'),Functions.avg('col4'))


推荐阅读