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

在ADF复制数据活动中解析合并JSON为完整行数据CSV

提取所有rows数组数据并生成CSV的ADF实现方案

核心思路

你当前的问题根源是未正确遍历展开JSON中嵌套的tables节点下的rows数组,导致仅提取到首行数据。以下提供两种可行的ADF实现方案:


方式一:使用数据流(推荐,灵活性更高)

1. 配置数据源

新建数据流,添加源数据集:

  • 指向合并后的JSON文件(或直接指向分散JSON文件所在的文件夹,无需提前合并)
  • JSON格式设置:如果合并后的JSON结构为{"tables": [{"rows": [...], ...}, ...]},将根路径设为$['tables'],让ADF识别tables数组为数据源的根层级

2. 扁平化rows数组

添加Flatten转换:

  • 在转换设置中,选择rows列作为要展开的数组,设置为展开为新行,将每个rows数组内的业务对象拆分为单独的数据行
  • 如果rows内是无键数组(如["PipelineA", "Succeeded", ...]),需先通过派生列给每个索引位置指定列名:
    PipelineName = rows[0]
    Status = rows[1]
    
    完成后再执行扁平化操作

3. 过滤并选择目标列

添加Select转换,仅保留需要的业务字段(如PipelineName、Status),剔除tables中的其他无关属性

4. 输出为CSV

添加接收器数据集,格式选择CSV,配置存储路径、文件名及分隔符等参数,将数据流添加到管道中执行即可


方式二:使用复制活动(快速实现)

如果不需要复杂的数据转换,可直接在复制活动中配置:

  • 源数据集的JSON路径表达式设置为$..rows[*],该表达式会递归提取所有tables节点下rows数组的所有元素
  • 接收器选择CSV数据集,在映射面板中确认字段对应关系,确保所有业务字段正确映射到CSV列

关键注意事项

  • 若分散的JSON文件结构一致,可直接读取文件夹下所有文件,无需提前合并,ADF会自动批量处理
  • 需根据实际JSON结构调整路径:如果合并后的JSON是tables数组直接包裹(如[{"rows": [...], ...}, ...]),路径改为$[*].rows[*]
  • 若rows内是结构化对象(如{"PipelineName": "xxx", "Status": "xxx"}),扁平化后可直接映射字段,无需手动指定索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:52:25