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

如何在Azure Data Factory中映射无表头CSV文件的列

在Azure Data Factory数据流中动态重命名无表头CSV的指定列

步骤1:定义列映射参数

在数据流中创建一个数组类型的参数(比如命名为columnMappings),将源列与目标列的映射关系以JSON数组形式填入,示例如下:

[
  {"sourceColumn": "_c0", "targetColumn": "customerName"},
  {"sourceColumn": "_c2", "targetColumn": "cusid"},
  {"sourceColumn": "_c6", "targetColumn": "你的自定义列名"},
  {"sourceColumn": "_c8", "targetColumn": "你的自定义列名"},
  {"sourceColumn": "_c9", "targetColumn": "你的自定义列名"},
  {"sourceColumn": "_c10", "targetColumn": "你的自定义列名"},
  {"sourceColumn": "_c11", "targetColumn": "你的自定义列名"},
  {"sourceColumn": "_c12", "targetColumn": "depid"}
]

根据实际需求替换示例中的你的自定义列名即可。

步骤2:用派生列动态生成重命名后的列

  1. 在数据流中添加派生列转换,连接到CSV源数据集之后。
  2. 点击添加列按钮,选择添加动态列。
  3. 在动态内容编辑器中输入以下表达式:
reduce(columnMappings, {}, (current, map) => current + @(map.targetColumn, toString(map.sourceColumn)))

这个表达式会遍历映射数组,将每个源列的值赋值给对应的目标列名,自动生成所有需要的新列。

步骤3:(可选)仅保留映射后的列

如果需要丢弃原始的_c*列,只保留重命名后的列:

  1. 添加选择转换,连接到派生列之后。
  2. 在选择转换的列设置中,切换到动态内容模式,输入:
map(columnMappings, (map) => map.targetColumn)

这样选择转换会自动筛选出所有映射后的目标列,排除未定义的原始列。

注意事项

  • 确保columnMappings中的源列名与CSV生成的默认列名完全一致(ADF对列名大小写敏感)。
  • 后续如果列的映射关系需要调整,只需修改columnMappings参数的数组内容,无需改动数据流的转换逻辑。
  • 测试时可通过数据流预览功能,确认列名映射和数据传递是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:27:16