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

Azure Data Factory复制活动中添加NAN转Null条件语句的问题

在ADF复制活动中处理NAN值并替换为Null的实现方案

方法一:复制活动映射内直接处理(适合简单场景)

  • 打开复制活动的映射标签页,找到需要处理的目标列
  • 点击目标列旁的表达式按钮(fx图标),根据源数据的NAN类型写入判断表达式:
    • 若NAN是字符串形式(如"NaN"):
      iif(equals(sourceCol, 'NaN'), null(), sourceCol)
      
      替换sourceCol为实际的源列名(比如@school)
    • 若NAN是数值类型(需先转换数据类型):
      iif(isNaN(toDouble(sourceCol)), null(), toDouble(sourceCol))
      
      比如处理@theatre列时,先转成数值再判断是否为NaN
  • 保存表达式后运行复制活动,即可将对应NAN值替换为Null写入SQL表

方法二:使用数据流活动(适合嵌套/复杂数据结构)

如果源数据是嵌套JSON(如你的示例中CurrentVal.col数组),推荐用数据流做扁平化+处理:

  1. 在管道中添加数据流活动,配置源数据集为HTTP API,设置JSON路径为$[*].CurrentVal.col以展开嵌套数组
  2. 添加派生列转换,对每个需要处理的列设置表达式:
    • 处理@school列:
      iif(equals(@school, 'NaN'), null(), @school)
      
    • 处理@theatre列:
      iif(isNaN(toDouble(@theatre)), null(), toDouble(@theatre))
      
  3. 添加接收器数据集为目标SQL表,配置与原复制活动一致的写入规则(如更新模式)
  4. 运行管道完成数据处理与写入

注意事项

  • 确保目标SQL表的对应列允许Null值,避免写入失败
  • 若源数据中NAN以其他形式存在(如"nan"、"N/A"),需调整表达式中的判断值
  • 复制活动中处理嵌套JSON时,需先在源设置-分层标签页配置数组展开,才能直接映射列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:18:26