在ADF Dataflow中合并不同Schema双源到单文件并保留行Schema
ADF Dataflow不同Schema数据源合并输出方案
核心思路
不需要做两个数据源的Schema对齐,先分别将各自每行的字段按要求拼接为完整字符串,再合并两个单字段流输出即可。
具体操作步骤
- 处理源1(4列数据源)
新增派生列,列名统一设为output_line,表达式为concat(列1名称, ', ', 列2名称, ', ', 列3名称, ', ', 列4名称),直接拼接得到"A, B, C, D"格式的单行字符串。 - 处理源2(2列数据源)
同样新增派生列output_line,表达式为concat(列1名称, ', ', 列2名称),拼接得到"J, K"格式的单行字符串。 - 合并两个数据流
使用Union转换组件,合并规则选择ByName,两个处理后的流都只有output_line一个字段,可直接匹配合并。 - 配置Sink输出
- Sink选择分隔符文本类型,列分隔符选择不会出现在
output_line内容中的特殊字符即可(比如\t,因为最终仅输出1个字段,分隔符不会生效) - 关闭「输出表头」开关,避免生成表头行
- 映射配置中仅保留
output_line字段,删除其余所有不需要输出的字段
- Sink选择分隔符文本类型,列分隔符选择不会出现在
效果验证
最终输出的文件不会补多余逗号,两行内容分别为两个源的原始列拼接结果,完全符合要求。
内容的提问来源于stack exchange,提问作者Kd85
相关产品推荐
相关产品推荐

