0
新的列名我有一些聚合函數下面的代碼:pyspark:用於聚合領域
new_df = my_df.groupBy('id').agg({"id": "count", "money":"max"})
然後把新的一列,我是COUNT(id)
和MAX(money)
。我可以自己指定列名而不是使用默認的列名嗎?例如。我希望他們被稱爲my_count_id
和my_max_money
。我怎麼做?謝謝!
新的列名我有一些聚合函數下面的代碼:pyspark:用於聚合領域
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"))
我已經使用'withColumnRenamed',但它不是一個很優雅的解決方案。 – David