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

ADF读取Blob Storage中JSON时Schema Inference检测到格式错误如何解决

ADF解析Blob存储JSON数组报错解决方案

报错原因

你使用的是标准JSON数组结构,报错是因为ADF默认FAILFAST解析模式对换行、前置逗号的格式敏感度较高,自动schema推断时触发了格式校验异常。

解决方法

方案1:调整解析配置(无需修改源文件,优先推荐)

  • 数据集JSON格式选择Array of Documents,匹配你外层为数组的JSON结构
  • 找到解析设置中的Parse Mode选项,将默认值FAILFAST修改为PERMISSIVE,该模式会优先解析有效字段,不会因小的格式兼容问题直接抛出异常
  • 若在数据流中使用,额外在源转换的JSON设置中开启Allow comments、Allow trailing commas选项,进一步提升格式兼容性

方案2:调整源JSON格式(配置调整无效时使用)

如果调整配置后仍报错,是因为你当前JSON的每个数组元素使用了换行+前置逗号的写法,少数场景下ADF解析器识别异常,可以改成以下两种兼容格式:

  1. 压缩为单行无多余换行的数组,匹配Array of Documents模式:
[{"Bid":0.197514880839,"BaseCurrency":"AED"},{"Bid":0.535403560434,"BaseCurrency":"AUD"},{"Bid":0.351998712241,"BaseCurrency":"BBD"},{"Bid":0.573128306234,"BaseCurrency":"CAD"},{"Bid":0.787556605631,"BaseCurrency":"CHF"},{"Bid":0.0009212964,"BaseCurrency":"CLP"},{"Bid":0.115389497248,"BaseCurrency":"DKK"}]
  1. 移除外层数组括号,每个JSON对象单独占一行,匹配Document Per Line模式:
{"Bid":0.197514880839,"BaseCurrency":"AED"}
{"Bid":0.535403560434,"BaseCurrency":"AUD"}
{"Bid":0.351998712241,"BaseCurrency":"BBD"}
{"Bid":0.573128306234,"BaseCurrency":"CAD"}
{"Bid":0.787556605631,"BaseCurrency":"CHF"}
{"Bid":0.0009212964,"BaseCurrency":"CLP"}
{"Bid":0.115389497248,"BaseCurrency":"DKK"}

方案3:手动指定Schema解析

如果不想修改源文件,可在数据流中先读取文件完整内容,再用fromJson函数手动解析,跳过自动schema推断步骤,示例表达式:

fromJson(toString(input()), 'array<struct<Bid: double, BaseCurrency: string>>')

额外校验点

确认Blob存储中的JSON文件为UTF-8无BOM编码,带BOM头的文件也会触发解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:12:02