Pyspark:聚合字段的新列名



我有以下代码与一些聚合函数:

new_df = my_df.groupBy('id').agg({"id": "count", "money":"max"})

那么我的新列是COUNT(id)MAX(money)。我可以自己指定列名而不是使用默认列名吗?我想把它们命名为my_count_idmy_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"))

相关内容

  • 没有找到相关文章

最新更新