Data Factory Dataflow多文件列名映射及空值处理咨询
在Azure Data Factory Dataflow中处理列名变体并统一输出列的解决方案
完全可行,以下是具体实现步骤:
1. 开启Schema漂移支持
确保输入数据集开启允许Schema漂移,让Dataflow能识别所有CSV文件中的差异列,避免因列不匹配导致的报错。
2. 派生统一输出列
添加派生列组件,针对每个目标输出列编写表达式,实现变体列映射与缺失列的null填充:
- clm1:直接映射
column1,无该列则返回null:iifNull(column1, null()) - clm2:优先取
column2,不存在则取2column,都不存在则返回null:iifNull(column2, iifNull(2column, null())) - clm3:优先取
column3,不存在则取col3,都不存在则返回null:iifNull(column3, iifNull(col3, null())) - clm4:匹配所有包含
column4的列(如column4、column4_ext等),取对应列值,无匹配则返回null:reduce(mapColumns(), null(), (acc, name, val) => iif(like(name, '%column4%'), val, acc))
3. 固定输出列结构
添加选择列组件,仅保留clm1、clm2、clm3、clm4这四个列,确保最终输出的列结构完全统一。
进阶:用列模式批量匹配变体列
如果后续有更多列名变体,可使用列模式简化配置:
- 针对clm2,创建列模式匹配名称为
column2或2column的列,直接映射为clm2; - 针对clm3,创建列模式匹配名称为
column3或col3的列,直接映射为clm3;
列模式会自动识别符合规则的列,无需逐个编写iifNull表达式。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

