在转换过程中,我需要执行多个步骤,在这些步骤中,我将来自不同流(文件)的数据合并在一起。所有流都具有一个公共字段ID_Time。
现在,当我尝试在ID_Time上加入2个流时,可以说使用“多路合并合并”,我会得到ID_Time和ID_Time_1字段。我想将它们合并为一个,因此我们摆脱了_1列。如果我们在两个流中都没有相同的列,那么我希望我们不必为空。
一个例子:
ID Number1 Number2 ID_Time
1 5,06 215 12154
2 5121 121 151
ID CarModel CarManufacturer ID_Time
1 CX3 Mazda 12
2 V40 Volvo 39
所以我希望这样作为最终结果:
ID Number1 Number2 CarModel CarManufacturer ID_Time
1 5,06 215 null null 12154
2 5121 121 null null 151
3 null null CX3 Mazda 12
4 null null V40 Volvo 39
也许我必须使用其他联接?还是按不同的键?
答案 0 :(得分:1)
Merge join
和Multiway Merge join
的输出将始终包含所有流中的所有字段;如果重复输入字段,则后缀将带有_1
,_2
等。
一种明显的情况是联接键具有相同的名称(通常是这种情况),但是您可能还具有其他具有相同名称的字段。
有多种解决方法,但是最简单的方法是在连接之后执行Select values
步骤,并删除重复的字段(“选择值”的一个标签称为“删除”,它将删除您指定的任何字段)。
可以在合并后通过Add sequence
步骤添加您的最终ID字段。
当心:始终在合并之前对输入进行排序,因为两个合并步骤均假设输入数据要进行排序。