Azure Data Flow中如何按名称动态合并ADLS中的批量文件
Azure Data Flow 按列名动态合并多文件(Schema Drift场景)
步骤1:源数据集配置
- 开启
Allow schema drift,并将Import schema设为None,避免固定schema限制新列识别 - 保持通配符路径
*.txt,确保批量读取所有目标文件
步骤2:用Union转换实现动态列合并
- 在源之后添加Union转换,选择
Auto mapping模式:该模式会自动匹配所有输入流的列名,相同列名的字段合并,缺失列自动填充NULL - 若存在列名大小写不一致(如
A和a),先加Derived Column转换统一列名:- 表达式:
map(keys(), #item, lower(#item)),将所有列名转为小写(或大写),确保列名匹配
- 表达式:
步骤3:验证输出
- 调试运行后,所有文件的列会按名称合并,缺失列自动填充
NULL。比如文件1的a,b,c和文件2的e会合并为a,b,c,e,文件2的a,b,c值为NULL,文件1的e值为NULL
常见问题排查
- 列错位:检查所有源文件的分隔符是否统一,确保源数据集的分隔符配置正确
- 部分列未显示:确认
Allow schema drift已开启且Import schema为None,避免静态schema限制新列
内容的提问来源于stack exchange,提问作者AzSurya Teja
相关产品推荐
相关产品推荐

