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

Azure Synapse Analytics读取JSON代码中format='csv'参数作用问询

关于Azure Synapse无服务器SQL池查询JSONL文件时format = 'csv'的逻辑说明

这个配置不是为了将JSON转换为CSV格式做扁平化,它是针对JSONL(换行分隔型JSON,即每行存储一个独立JSON对象的文件格式)的特殊读取技巧,核心作用如下:

  • 绕开内置JSON解析逻辑的限制:如果你直接设置format = 'json',OPENROWSET会默认尝试将整个文件识别为一个完整的JSON结构(比如JSON数组)来展开,无法适配JSONL每行一个独立JSON的格式,会直接解析失败。
  • 完整读取每行JSON内容:代码里同时设置了fieldterminator ='0x0b'和fieldquote = '0x0b',其中0x0b是垂直制表符,几乎不会在正常JSON内容中出现,用CSV格式解析时,就会把整行内容识别为唯一一个字段,也就是你WITH子句中定义的doc nvarchar(max)字段。
  • 后续可以灵活解析:拿到每行的完整JSON字符串后,你可以配合JSON_VALUE、OPENJSON等函数按需解析嵌套结构,适配性远高于直接用内置JSON解析,尤其适合JSON结构不统一、嵌套层级深的场景。

你提供的示例代码实际运行后,返回的doc字段就是每行完整的JSON字符串,你可以直接在这个基础上做JSON解析操作,比如:

select 
    JSON_VALUE(doc, '$.date_rep') as report_date,
    JSON_VALUE(doc, '$.cases') as confirmed_cases
from openrowset(
        bulk 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/ecdc_cases/latest/ecdc_cases.jsonl',
        format = 'csv',
        fieldterminator ='0x0b',
        fieldquote = '0x0b'
    ) with (doc nvarchar(max)) as rows

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:36:03