我有一個(gè)名為 d2 的數(shù)據(jù)框,有 2 列(DEST_COUNTRY_NAME,計(jì)數(shù))我創(chuàng)建了一個(gè)新的數(shù)據(jù)框,如下所示:df3 = df2.groupBy("DEST_COUNTRY_NAME").sum('count')我打算將列“sum(count)”的名稱更改為“destination_total”:df5 = df3.selectExpr("cast(DEST_COUNTRY_NAME as string) DEST_COUNTRY_NAME", "cast(sum(count) as int) destination_total")我打算將列“sum(count)”重命名為“destination_total”。我怎么解決這個(gè)問(wèn)題?我不與熊貓一起工作,而是與火花一起工作。
4 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
假設(shè)數(shù)據(jù)框中只有兩列,以下是您可以使用的兩種重命名方法。
df3 = df2.groupBy("DEST_COUNTRY_NAME").sum('count').toDF(*['DEST_COUNTRY_NAME', 'destination_total'])
或者您可以在調(diào)用別名函數(shù)時(shí)重命名它,如下所示:
df3.select("DEST_COUNTRY_NAME", col("sum(count)").alias("destination_total"))
PS:不要忘記導(dǎo)入 col。
from pyspark.sql.functions import col

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
df5 = df3.withColumnRenamed("sum(count)","destination_total")

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
或者您可以進(jìn)行聚合而不是直接求和。
df3 = df2.groupBy("DEST_COUNTRY_NAME").agg(sum('count').alias('count'))

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
from pyspark.sql.functions import * df3 = df2.groupBy("DEST_COUNTRY_NAME") \ .agg(sum("count").alias("destination_total"))
添加回答
舉報(bào)
0/150
提交
取消