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

如何在Azure Data Factory中为嵌套JSON数组创建独立CSV文件

ADF 单独导出JSON中subject_details数组为独立CSV的实操方法

你不需要改动原有主数据展平的流程,在现有Data Flow里加独立分支处理数组即可,完全避免大数组拖慢主表处理效率,具体步骤如下:

1. 数据源配置

  • 源端选择存储JSON的对应服务(ADLS Gen2、Blob存储等),文件格式选JSON,确认解析后能正常识别顶层字段:studentid、schoolid、name、set_id、subject_details。
  • 源端不要提前做任何数组展平操作,保留subject_details的原始数组结构。

2. 保留关联主键

  • 新增派生列转换,把能唯一标识学生的主键(推荐用studentid,如果有重号需求就组合studentid+schoolid)保留下来,后续导出CSV时必须带这个字段,不然明细数据没法和主学生数据关联。
  • 不需要的顶层字段(比如name、set_id如果和subject明细无关)可以直接在这一步删除,降低后续处理的数据量。

3. 展平subject_details数组

  • 新增「展平(Flatten)」转换,展平的数组项选择subject_details。
  • 展平输出字段按需配置:
    • 保留上一步加的学生关联主键
    • 映射数组下的subject_code字段
    • 映射数组下的value字段,注意其中category_ids对应的value是嵌套数组,按需选处理方式:
      • 如果要把数组内容存在单个CSV单元格,直接用toString(value)把数组转成逗号分隔字符串即可,比如示例数据会输出463,630
      • 如果要把分类ID也拆成单独行,就在这层展平之后再加一层展平转换,针对value数组做二次拆分即可。

4. 配置CSV输出

  • 新增「接收器(Sink)」转换,输出格式选CSV,配置好目标存储路径、文件名规则。
  • 输出参数注意几个点:
    • 编码选UTF-8,避免特殊字符乱码
    • 开启字符串引号转义,避免字段里的逗号、换行符把CSV列结构弄乱
    • 根据数据更新规则选择写入模式:全量覆盖还是增量追加。

性能优化提示

  • 如果subject_details数组量级特别大,在源端开启数据流分区读取,把大文件拆分到不同计算节点处理,避免单节点内存溢出。
  • 主数据展平和subject明细导出可以在同一个数据流里用「分支(Branch)」转换从源端分两路处理,不用重复读取源文件,省IO开销。
  • 展平之后可以加个筛选转换,过滤掉subject_code为空的无效记录,减小最终CSV的体积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:42:09