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

ADF数据流:REST返回数字字段映射为指定文本的转换方法咨询

在Azure Data Factory数据流中实现数值到文本的映射转换

场景说明

从REST端点获取的JSON数据格式如下:

{
  "Field1":2007,
  "Field2":2005
}

需要按规则2005 = "AAA"、2007 = "BBB"将数值字段转换为文本,且字段为非必填项(可能不存在),最终输出:

{
  "Field1":"BBB",
  "Field2":"AAA"
}

手动实现方案

方案1:使用派生列(Derived Column)转换

这是最直接的手动实现方式,适合映射规则固定且数量少的场景:

  1. 在数据流中添加派生列转换
  2. 针对每个可能的字段,编写条件表达式处理:
    • 若要覆盖原字段,直接使用原字段名作为派生列名称;若要保留原字段,使用新名称(如Field1_Mapped)
    • 示例表达式(以Field1为例):
      case(
        isNull(Field1), null,
        Field1 == 2007, 'BBB',
        Field1 == 2005, 'AAA',
        null
      )
      
      或更简洁的iif嵌套写法:
      iif(isNull(Field1), null, iif(Field1 == 2007, 'BBB', iif(Field1 == 2005, 'AAA', null)))
      
  3. 核心逻辑:通过isNull()判断字段是否存在/为空,避免字段缺失导致报错;匹配到对应数值则返回目标文本,未匹配则返回null(可根据需求调整)

方案2:使用查找(Lookup)转换(适合规则可能扩展的场景)

如果后续映射规则可能增加,可通过小型映射数据集实现:

  1. 创建一个映射数据集(如JSON/CSV),内容为:
    [{"Code":2005,"Text":"AAA"},{"Code":2007,"Text":"BBB"}]
    
  2. 在数据流中添加查找转换,将数据流中的目标字段(如Field1)与映射数据集的Code字段关联
  3. 关联后,用映射数据集的Text字段替换原数值字段,同时处理字段缺失情况:
    iif(exists(Field1), lookupOutput.Text, null)
    
    其中lookupOutput.Text为查找转换返回的文本字段

关键注意事项

  • 必须用isNull()或exists()函数判断字段是否存在,避免因字段缺失触发数据流报错
  • 若字段存在但数值不在映射规则内,可根据需求返回null、原数值或自定义默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:32:25