如何在Talend中合并列不完全相同的表格?
在Talend中合并含额外列的表格(保留所有列)
你这种场景没法直接用tUnite,因为它要求所有输入流的列结构完全一致。下面是两种实用的解决方法:
方法一:手动补全列后用tUnite
- 给每个输入表格搭配一个
tMap组件,在tMap里补全所有缺失的列。比如表格1、2没有col d,就在tMap的输出端新增col d字段,把表达式设为""(空字符串)或者null。 - 等所有表格都通过
tMap处理成列结构完全统一的输出流后,再接到tUnite上合并,原缺失列的位置就会显示你设置的空白或null。
方法二:用tDynamicUnite组件(推荐,Talend 6及以上版本支持)
这个组件就是为列结构不一致的合并场景设计的:
- 直接把所有需要合并的表格输出流接到
tDynamicUnite的多个输入端口。 - 组件会自动汇总所有输入流的列,对每个输入流中不存在的列自动填充
null。 - 注意:如果不同表的列名大小写不一致(比如
Col D和col d),会被识别为不同列,需要提前用tMap统一列名。
要是你想把默认的null改成空字符串,可以在tDynamicUnite之后再加一个tMap,用isNull(col_d) ? "" : col_d这类表达式替换。
内容的提问来源于stack exchange,提问作者Seka
相关产品推荐
相关产品推荐

