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

在Azure Data Factory中生成含动态Key的JSON文件的技术问询

Azure Data Factory 动态生成以CSV ID列为Key的JSON结构

问题说明

现有CSV数据如下:

IDuserIdName
719A070E-4874-E811-9CCE-02152146006A123Joe
5d7d0a74-f1b9-483a-8e9f-c7f45ccfeda0456Mike

需要生成如下结构的JSON:

[
    {
        "719A070E-4874-E811-9CCE-02152146006A": {
            "userId": "123",
            "Name": "Joe"
        }
    },
    {
        "5d7d0a74-f1b9-483a-8e9f-c7f45ccfeda0": {
            "userId": "456",
            "Name": "Mike"
        }
    }
]

已能生成包含userId和Name的内层JSON,但无法将CSV的ID列设为外层动态Key,以下是解决方法:

解决步骤

1. 创建映射数据流并连接CSV数据源

在Azure Data Factory中新建映射数据流,添加CSV数据集作为源,确认源数据能正确读取ID、userId、Name三列。

2. 添加派生列生成动态Key的对象

添加派生列转换,创建一个新列(例如命名为DynamicObject),使用以下表达式构造以ID为Key的对象:

@createMap(ID, createMap('userId', userId, 'Name', Name))

这个表达式会将每一行的ID作为外层Key,同时把userId和Name打包成内层对象。

3. 聚合生成JSON数组

添加聚合转换,在「分组依据」中选择不分组(留空即可),然后添加一个聚合列(例如命名为ResultArray),使用collect()函数将所有行的DynamicObject收集为数组:

@collect(DynamicObject)

4. 配置Sink输出JSON

添加接收器,选择JSON数据集作为输出目标:

  • 在接收器设置中,将「输出格式」设为数组;
  • 确保输出列选择聚合后的ResultArray列。

运行数据流后,即可得到目标格式的JSON文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:45:17