PySpark修改列名方法:如何将聚合输出的state列重命名为country
PySpark修改分组后列名的实现方法
你可以通过以下两种常用方式实现将state列重命名为country:
- 方案1:分组时直接对分组字段重命名
直接在groupBy方法内给指定字段设置别名,一步得到目标结果:df.groupBy(df["state"].alias("country")).sum("salary").show() - 方案2:聚合完成后修改列名
先完成分组聚合逻辑,再通过withColumnRenamed方法修改指定列名,逻辑更直观易懂:df.groupBy("state").sum("salary").withColumnRenamed("state", "country").show()
如果你还需要同时修改sum(salary)的默认列名,推荐使用agg方法自定义聚合字段别名:
from pyspark.sql.functions import sum df.groupBy(df["state"].alias("country")).agg(sum("salary").alias("total_salary")).show()
修改后输出示例:
+-------+-----------+ |country|sum(salary)| +-------+-----------+ | NJ| 91000| | NV| 166000| | CA| 171000| | DE| 99000| | NY| 252000| +-------+-----------+
内容的提问来源于stack exchange,提问作者Mounika
相关产品推荐
相关产品推荐

