python - 多个列上的多个聚合
问题描述
我在 Pyspark 框架中使用 Python。我正在尝试使用在不同的列上应用不同的聚合groupby
我有一个带有列col1
, col2
,的 df col3
,col4
我想做类似的事情:
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'
解决方案
这就是我在模块中的做法:
import pyspark.sql.functions as Functions
df2=df.groupBy('col1').agg(Functions.sum('col2'),Functions.sum('col3'),Functions.avg('col4'))
推荐阅读
- .net-core - .NET Core 2.0 跨项目本地化
- r - 矩阵的逐块和
- php - Codeigniter中的Json编码错误
- java - Maven包错误
- ios - Swift 如何知道 layoutIfNeeded() 之后布局是否完成
- docker - 来自守护进程的错误响应:容器没有运行?
- angular - Ionic - 拍照后再次调用相机?
- visual-studio - 如何使用 cakebuild.net 构建运行 xamarin 单元测试/ui 测试?
- php - Composer 在 docker 容器中不起作用:“https://packagist.org/packages.json”不包含有效的 JSON
- docker - 无法在 docker-compose 中定义的服务之间共享卷