我有以下代码与一些聚合函数:
new_df = my_df.groupBy('id').agg({"id": "count", "money":"max"})
那么我的新列是COUNT(id)
和MAX(money)
。我可以自己指定列名而不是使用默认列名吗?我想把它们命名为my_count_id
和my_max_money
。我怎么做呢?谢谢!
使用列而不是字典:
>>> from pyspark.sql.functions import *
>>> my_df.groupBy('id').agg(count("id").alias("some name"), max("money").alias("some other name"))
可能是这样的:
new_df = my_df.groupBy('id')
.agg({"id": "count", "money": "max"})
.withColumnRenamed("COUNT(id)", "my_count_id")
.withColumnRenamed("MAX(money)", "my_max_money")
或:
import pyspark.sql.functions as func
new_df = my_df.groupBy('id')
.agg(func.count("id").alias("my_count_id"),
func.max("money").alias("my_max_money"))