Azure Data Flow选Array of Documents仍遇格式错误求助
解决ADF Data Flow读取JSON数组时的格式错误问题
可能的原因与对应解决方案
1. 检查JSON文件的编码与隐藏字符
你的示例JSON是标准数组结构,但实际文件可能存在UTF-8 BOM头或不可见特殊字符,导致ADF解析失败:
- 用Notepad++等编辑器打开文件,切换编码为
UTF-8无BOM格式后重新保存。 - 用本地JSON校验工具(如浏览器控制台的
JSON.parse())确认文件无语法错误。
2. 修改数据源解析模式
当前错误提示使用的FAILFAST模式会因微小格式问题直接报错,改为宽松模式:
- 在Data Flow的Source节点进入JSON settings,将
Parse Mode从FAILFAST改为PERMISSIVE。 - 再次确认
Document form已选中Array of documents。
3. 手动指定Schema而非自动推断
自动推断Schema时,嵌套数组(如DriverGroups、MapViews)易导致推断失败,手动定义Schema可规避:
- 在Source节点的Projection选项卡,点击
Import schema;若自动导入失败,手动添加每个字段的类型:- 数组类型字段(如
DriverGroups)设为Array,内部元素类型为包含id的Struct。 - 嵌套对象(如
MapViews里的viewport)设为Struct,匹配对应数值类型字段。
- 数组类型字段(如
4. 扁平化嵌套结构(若目标数据库不支持嵌套)
如果数据库无法存储嵌套数据,需在Data Flow中处理:
- 添加Flatten转换节点,选择嵌套数组字段(如
DriverGroups),设置Unroll by为该数组,将每个数组元素拆分为单独行。 - 多层嵌套可多次使用Flatten或用Derived Column处理。
5. 检查文件存储配置
若JSON存储在Blob Storage或ADLS中:
- 确认文件路径正确,未指向多个格式不一致的文件。
- 若为分块存储,确保ADF读取的是完整单个文件,而非多文件拼接。
内容的提问来源于stack exchange,提问作者NuAlphaMan
相关产品推荐
相关产品推荐

