【发布时间】:2021-11-10 09:43:01
【问题描述】:
如何使用 pyspark 数据框找到另一列的最大值和平均值的 id?
df:
+-------------+-------+----------+---------+----------+--------+------+------------------+
|ChargingEvent| CPID| StartDate|StartTime| EndDate| EndTime|Energy| PluginDuration|
+-------------+-------+----------+---------+----------+--------+------+------------------+
| 16673806|AN11719|2017-12-31| 14:46:00|2017-12-31|18:00:00| 2.4|3.2333333333333334|
| 16670986|AN01706|2017-12-31| 11:25:00|2017-12-31|13:14:00| 6.1|1.8166666666666667|
| 3174961|AN18584|2017-12-31| 11:26:11|2018-01-01|12:54:11| 24|25.466666666666665|
当前代码:
df.agg({'PluginDuration': 'max'}).show()
df.agg({'PluginDuration': 'avg'}).show()
然后将所有列重命名为如下预期的结果:
+-------------------+-------------------+------------------+
|id |max_value |avg_value
+-------------------+-------------------+-------------------+
| QWER |96.26 |12.35 |
id 从 CPID 重命名。并且max_value 和avg_value 需要四舍五入到小数点后两位。
【问题讨论】:
-
您需要使用数据框方法还是 SQL 方法可以?
-
Dataframe 方法,最好。但是我打开了@StuartMills