我有一个名为 d2 的数据框,有 2 列(DEST_COUNTRY_NAME,计数)我创建了一个新的数据框,如下所示: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”。我怎么解决这个问题?我不与熊猫一起工作,而是与火花一起工作。
4 回答
![?](http://img1.sycdn.imooc.com/54584cc500019c5b02200220-100-100.jpg)
HUX布斯
TA贡献1876条经验 获得超6个赞
假设数据框中只有两列,以下是您可以使用的两种重命名方法。
df3 = df2.groupBy("DEST_COUNTRY_NAME").sum('count').toDF(*['DEST_COUNTRY_NAME', 'destination_total'])
或者您可以在调用别名函数时重命名它,如下所示:
df3.select("DEST_COUNTRY_NAME", col("sum(count)").alias("destination_total"))
PS:不要忘记导入 col。
from pyspark.sql.functions import col
![?](http://img1.sycdn.imooc.com/54584f6d0001759002200220-100-100.jpg)
萧十郎
TA贡献1815条经验 获得超13个赞
或者您可以进行聚合而不是直接求和。
df3 = df2.groupBy("DEST_COUNTRY_NAME").agg(sum('count').alias('count'))
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
墨色风雨
TA贡献1853条经验 获得超6个赞
from pyspark.sql.functions import * df3 = df2.groupBy("DEST_COUNTRY_NAME") \ .agg(sum("count").alias("destination_total"))
添加回答
举报
0/150
提交
取消