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

Spark解析多行嵌套JSON数组得到数组列而非单行,如何提取目标字段?

问题原因

data.data3本身为数组类型,直接访问data.data3.info2会生成嵌套数组结构,仅对该字段做一次explode无法完全打平内层元素,才会出现结果为数组列的情况。

修正后代码

首先确保已引入所需函数:

from pyspark.sql.functions import explode, col

调整解析逻辑为两次explode打平嵌套数组:

df = json.select(
    # 第一次炸开外层data3数组,每个数组元素对应一行
    explode("data.data3").alias("data3_item")
).select(
    # 第二次炸开每个data3元素下的info2数组
    explode("data3_item.info2").alias("info2_item")
).select(
    # 提取对应字段即可得到单行单条的结果
    col("info2_item.info.test1").alias("test1"),
    col("info2_item.info.test2").alias("test2")
)

运行上述代码即可得到你预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:57:04