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

Spark DataFrame提取结构体列字段并重命名报错问题

解决PySpark结构体字段重命名报错问题

你的代码报错是因为直接在select的字符串参数后使用as不符合PySpark语法,PySpark中需要用正确的方式引用结构体字段并重命名,以下是两种可行的写法:

方法1:使用col()函数配合alias()

通过col()函数明确引用结构体中的嵌套字段,再用alias()指定新列名:

from pyspark.sql.functions import col

# 注意:原DataFrame中是user列,你代码里写的user_group需要对应实际列名
df2 = df.select(
    "number",
    "name",
    col("owner.display_value").alias("owner_display_value"),
    col("support.display_value").alias("support_display_value"),
    "user",
    "business_unit"
)

方法2:使用selectExpr()执行SQL风格表达式

selectExpr()支持直接写SQL格式的字段重命名语句,更贴近你原本的写法:

df2 = df.selectExpr(
    "number",
    "name",
    "owner.display_value as owner_display_value",
    "support.display_value as support_display_value",
    "user",
    "business_unit"
)

另外注意:原查询中你选取的是user列,但代码里误写为user_group,需要对应实际列名,避免出现列不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:35:23