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

如何从PySpark的Column对象中提取列名的字符串表示?

从PySpark Column对象中提取列名的优雅方法

你用repr截取字符串的方法确实不够稳妥,因为repr的输出格式可能随PySpark版本变动,很容易出问题。这里提供两种更可靠的方法:

方法一:利用Column内部的Java对象引用

PySpark的Column对象持有一个Java层的引用_jc,可以通过它直接调用获取列名的方法:

# 直接获取列名
col_name: str = my_col._jc.name()

或者用toString()方法(输出格式就是列名字符串):

col_name: str = my_col._jc.toString()

注意:_jc属于PySpark的非公开内部属性,虽然在绝大多数版本中都能正常工作,但官方不保证后续版本的兼容性。

方法二:解析Column的表达式字符串

Column对象有一个expr公开属性,存储了对应的表达式字符串,针对简单列名的场景,可以直接提取:

# 对于普通列名,expr的值就是列名字符串
col_name: str = my_col.expr

如果是带表别名的列(比如df.foo),可以拆分字符串取最后一段:

col_name: str = my_col.expr.split('.')[-1]

这种方法依赖表达式字符串的格式,但相比repr更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:17:05