You need to enable JavaScript to run this app. 如何在Databricks SQL中正确查询JSON类型列?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks SQL中正确查询JSON类型列?

Databricks SQL查询JSON列的解决方案

报错原因

你使用的->>是PostgreSQL生态数据库支持的JSON字段提取运算符,Databricks SQL未兼容该语法,因此会抛出语法匹配错误。

推荐查询写法

方法1:使用json_extract_scalar函数(单字段查询首选)

该函数是Databricks官方提供的JSON标量值提取工具,直接适配JSON类型列或JSON格式的字符串列,正确查询语句如下:

SELECT *
FROM companies c
WHERE json_extract_scalar(c.urls, '$.Website') = '';
  • 第一个参数为待查询的JSON列
  • 第二个参数为JSON路径表达式,$.Website代表取JSON顶层的Website属性值

方法2:预解析JSON为STRUCT类型(多字段高频查询首选)

如果需要多次访问urls中的多个JSON属性,可以提前将JSON列解析为结构化STRUCT类型,后续直接通过点运算符访问属性,查询性能更优:

SELECT *
FROM companies c
WHERE from_json(c.urls, 'STRUCT<Website: STRING, Twitter: STRING>').Website = '';
  • from_json的第二个参数为自定义的JSON结构,可根据实际业务的JSON字段调整类型定义

以上两种写法都可以正确匹配你提供的示例数据中Website为空字符串的第一条记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:00:01