重命名 PySpark DataFrame 聚合的列 [英] Renaming columns for PySpark DataFrame aggregates

查看:142
本文介绍了重命名 PySpark DataFrame 聚合的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 PySpark DataFrames 分析一些数据.假设我有一个正在聚合的 DataFrame df:

I am analysing some data with PySpark DataFrames. Suppose I have a DataFrame df that I am aggregating:

(df.groupBy("group")
   .agg({"money":"sum"})
   .show(100))

这会给我:

group                SUM(money#2L)
A                    137461285853
B                    172185566943
C                    271179590646

聚合工作正常,但我不喜欢新的列名SUM(money#2L)".有没有办法将此列重命名为人类可读的 .agg 方法?也许更类似于在 dplyr 中所做的事情:

The aggregation works just fine but I dislike the new column name "SUM(money#2L)". Is there a way to rename this column into something human readable from the .agg method? Maybe something more similar to what one would do in dplyr:

df %>% group_by(group) %>% summarise(sum_money = sum(money))

推荐答案

虽然我仍然更喜欢 dplyr 语法,但这段代码可以做到:

Although I still prefer dplyr syntax, this code snippet will do:

import pyspark.sql.functions as sf

(df.groupBy("group")
   .agg(sf.sum('money').alias('money'))
   .show(100))

它变得冗长.

这篇关于重命名 PySpark DataFrame 聚合的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆