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

Azure Data Factory从Blob取文件名设为列名失败求助

Azure Data Factory 附加列类型错误排查与解决

报错The value of property 'additionalColumns' is in unexpected type 'IList1'的核心原因是**Copy Data活动的additionalColumns`字段接收到了列表/数组类型的数据,但它要求的是单个列定义的对象或字符串值**。结合你用到的Get Metadata、Set Variable、Copy Data步骤,问题大概率出在以下几个环节:

常见错误点

  • Get Metadata 输出未正确提取单个文件名
    如果你在Get Metadata里勾选了Child Items(获取多文件列表),它的输出是一个数组。如果直接把这个数组赋值给变量,后续在Copy Data里引用时就会触发类型不匹配。确认你是否需要获取单个文件的Name(仅勾选Name属性),还是多文件列表。

  • 变量类型设置错误
    存储文件名的变量必须设为字符串类型,而不是数组/列表类型。如果变量是数组类型,哪怕你只存了一个文件名,引用到additionalColumns里也会被判定为IList类型,导致报错。

  • Copy Data 附加列配置错误
    在Copy Data的映射页添加额外列时,不要直接将数组变量填入值字段。正确的做法是用表达式引用字符串变量:

    • 确保变量存储的是单个文件名字符串
    • 在列值中填写@variables('你的文件名变量'),而非直接选择变量(避免误传列表类型)

修正方案

单个文件场景

  1. 调整Get Metadata活动,仅勾选Name属性,确保输出为单个文件名字符串
  2. 创建/修改变量为字符串类型,赋值表达式用@activity('Get Metadata活动名').output.name
  3. 在Copy Data的映射中添加额外列,列值填入@variables('你的字符串变量')

多文件批量处理场景

  1. Get Metadata勾选Child Items,获取文件列表数组
  2. 添加ForEach活动,遍历@activity('Get Metadata活动名').output.childItems
  3. 在ForEach内部创建字符串变量,用@item().name获取当前遍历的文件名
  4. 在ForEach内的Copy Data活动中,引用这个字符串变量作为额外列的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:32:14