📅  最后修改于: 2023-12-03 15:38:11.977000             🧑  作者: Mango
在 PySpark 中,聚合操作经常使用到。在使用 groupBy 和聚合操作时,PySpark 会自动为聚合后的结果生成一列名为“聚合函数(列名)”。但是有时候,我们可能需要自定义这列的名字。下面介绍两种方法来命名 PySpark DataFrame 中的聚合列。
withColumnRenamed()
方法可以修改 DataFrame 中的列名。我们可以在聚合操作后使用该方法来命名聚合列。示例如下:
from pyspark.sql.functions import sum
# 创建 DataFrame
df = spark.createDataFrame([(1, "A", 100), (2, "B", 200), (1, "A", 300)], ["id", "name", "value"])
# 对 value 列进行求和,并命名为 total_value
df_agg = df.groupBy("id").agg(sum("value").alias("total_value"))
df_agg.show()
运行结果为:
+---+-----------+
| id|total_value|
+---+-----------+
| 1| 400|
| 2| 200|
+---+-----------+
select()
方法可以选取 DataFrame 中的列,并返回一个新的 DataFrame。我们可以在聚合操作后使用该方法来选择需要的列,并为聚合列自定义列名。示例如下:
from pyspark.sql.functions import sum
# 创建 DataFrame
df = spark.createDataFrame([(1, "A", 100), (2, "B", 200), (1, "A", 300)], ["id", "name", "value"])
# 对 value 列进行求和,并命名为 total_value
df_agg = df.groupBy("id").agg(sum("value").alias("total_value")).select("id", "total_value")
df_agg.show()
运行结果与方法一相同。
需要注意的是,使用 select() 方法需要手动选择需要的列,如果 DataFrame 中有大量列需要选择,使用 withColumnRenamed() 方法可能更加便捷。
以上就是如何命名 PySpark DataFrame 中的聚合列的方法,希望对大家有所帮助。