重命名pyspark数据帧聚合的列 [英] renaming columns for pyspark dataframes aggregates

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

问题描述

我正在使用pyspark数据框分析一些数据,假设我有一个数据框 df ,我正在汇总:

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

这将给我:

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

聚合工作正常,但我不喜欢新的列名称SUM(money#2L)。有没有一种整洁的方式将这个列重命名为从 .agg 方法可读的东西?可能更类似于 dplyr 中的内容:

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


解决方案

虽然我仍然喜欢 dplyr 语法,但这段代码片段将会执行:

  import pyspark.sql.functions as func 

df.groupBy(group)\
.agg(func.sum('money')。alias('money '))\
.show(100)

它变得冗长。


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)

This will give me:

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

The aggregation works just fine but I dislike the new column name "SUM(money#2L)". Is there a neat 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))

解决方案

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

import pyspark.sql.functions as func

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

It gets verbose.

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

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