我正在尝试使用均值函数作为字典变量来执行pyspark数据帧的groupby均值。
from pyspark.sql import functions as F
_func= {'mean' : F.mean}
df.groupby('name')._func['mean']()
但这失败并显示错误
'AttributeError GroupedData object has no attribute _func'
我也尝试从pyspark.sql.group导入GroupedData类的均值函数,但是它失败并出现相同的错误。
如何解决此错误?
答案 0 :(得分:0)
您需要在agg
中传递字典。
df = df.groupby('name').agg({'column_name': 'mean'})
如果要使用函数字典,请像这样使用它,
from pyspark.sql import functions as F
_func= {'mean' : F.mean}
df = df.groupby('name').agg(_f['mean']())
编辑:
根据评论中提到的要求,这是我能提出的唯一解决方案,
df = df.groupby('name').agg(*[_f['mean'](x) for x in df.columns])
cols_to_delete = [_c for _c in df.columns if df.where(F.col(_c).isNotNull()).count() == 0]
df = df.drop(*cols_to_delete)