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

如何在ADF Data Flow中将JSON展平为行并合并id列?

ADF实现main.id与sub.id合并到同一列并生成多行数据的方法

场景说明

原始JSON数据包含一个main.id和一个sub数组(内含多个sub.id),使用Flatten后会得到main.id和sub.id分属两列的结果,我们需要将所有id合并到同一列,生成多行数据。


操作步骤

  1. 展开sub数组
    添加Flatten任务,选择输入数据的header作为展开层级,指定展开sub嵌套数组。执行后将得到2行数据,包含列:main.id(值均为1)、sub.type、sub.id(值为2、3)。

  2. 提取main.id单独成数据集
    基于Flatten后的结果添加Derived Column任务,创建新列target_id,表达式为main.id,同时移除其他无关列。此时得到仅含一行数据的数据集:target_id = 1。

  3. 提取sub.id单独成数据集
    复制Flatten后的数据集,添加Derived Column任务,创建新列target_id,表达式为sub.id,移除其他无关列。此时得到两行数据的数据集:target_id = 2、target_id = 3。

  4. 合并两个数据集
    添加Union任务,将步骤2和步骤3生成的两个数据集合并,匹配target_id列。最终将得到3行数据,所有id都集中在target_id列中。


另一种需求的处理(若需每行关联main.id与对应sub.id)

如果你的需求是每行保留main.id与对应sub.id的关联,但合并到同一列(如格式为1-2、1-3),可简化步骤:

  • 完成Flatten任务后,添加Derived Column任务,创建新列combined_id,表达式为:
    concat(toString(main.id), '-', toString(sub.id))
    
  • 移除原有的main.id和sub.id列,即可得到两行数据,每行的combined_id列包含关联的两个id。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:11:37