You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中重命名SQL查询生成的默认列名?

PySpark SQL列重命名解决方法
  • 直接去掉列名的单引号,合法标识符不需要引号包裹:

    df = sql("select last_day(add_months(current_date(),-1)) as newname")
    
  • 如果列名包含特殊字符需要标识符包裹,用反引号(`)而非单引号:

    df = sql("select last_day(add_months(current_date(),-1)) as `newname`")
    
  • 也可以在SQL执行后,用DataFrame的withColumnRenamed方法重命名:

    df = sql("select last_day(add_months(current_date(),-1))")
    df = df.withColumnRenamed("last_day(add_months(current_date(), -1))", "newname")
    

你之前的写法失败是因为单引号在PySpark SQL里表示字符串字面量,而非列名标识符,相当于把计算结果替换成了字符串'newname',而非给列改名。

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:34:55