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

Databricks SQL如何查询存储为字符串的嵌套JSON字段appName

纯SQL提取JSON字符串中字段的解决方案

由于additional_data.content是存储JSON格式字符串的字段,无法直接以Struct类型的方式访问,必须通过JSON解析函数处理后提取appName,以下是主流SQL引擎的实现方式:

Spark SQL / Hive SQL

使用get_json_object函数指定JSON路径提取:

SELECT get_json_object(additional_data.content, '$.appName') AS appName
FROM your_table;

若需要提取多个字段,json_tuple更高效:

SELECT json_tuple(additional_data.content, 'appName') AS appName
FROM your_table;

PostgreSQL

先将字符串转为JSON类型,再提取字段:

-- 使用函数方式
SELECT json_extract_path_text(additional_data.content::json, 'appName') AS appName
FROM your_table;

-- 简洁操作符方式
SELECT (additional_data.content::json)->>'appName' AS appName
FROM your_table;

MySQL

使用JSON提取函数或操作符:

-- 函数写法
SELECT JSON_EXTRACT(additional_data.content, '$.appName') AS appName
FROM your_table;

-- 直接返回字符串的操作符写法
SELECT additional_data.content->>'$.appName' AS appName
FROM your_table;

核心说明

你之前的尝试失败是因为误将存储JSON的字符串当作Struct类型直接访问,必须先通过JSON解析函数将字符串转换为可遍历的JSON结构,才能提取目标字段。以上所有方案均为纯SQL实现,无需修改原表结构或使用DataFrame相关API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:05:47