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

求助:如何在PySpark中处理嵌套JSON的includes列

处理PySpark中includes结构体的方法

针对你提到的includes是包含users数组的结构体,直接通过字段点语法就能访问内部的users数据,以下是具体操作:

1. 先确认数据结构(可选但推荐)

先打印schema确认includes的结构,避免字段名错误:

df.printSchema()

输出里includes会显示为struct类型,内部包含users: array<struct<...>>。

2. 提取users数组列

直接通过includes.users访问嵌套的数组,生成单独的users列:

from pyspark.sql import functions as F

# 新增users列,值为includes里的users数组
df_with_users = df.withColumn("users", F.col("includes.users"))
# 查看结果(保留data和users列)
df_with_users.select("data", "users").show(truncate=False)

3. 展开users数组(类似处理data的方式)

如果需要把users数组展开成多行,和处理data列一样用explode:

# 提取并展开users数组
df_exploded_users = df.withColumn("user", F.explode(F.col("includes.users")))
# 可以直接访问user的内部字段,比如id、名称等
df_exploded_users.select("data", "user.id", "user.*").show(2)

4. 替换includes列为users数组

如果想直接把原来的includes列替换成users数组:

df_updated = df.withColumn("includes", F.col("includes.users"))
df_updated.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:33:32