Pentaho kettle 加入不同领域的流
Pentaho kettle join streams with different fields
我在转换中有多个步骤,我在其中连接来自不同流(文件)的数据。所有流都有一个公共字段,即 ID_Time.
现在,当我尝试在 ID_Time 上加入 2 个流时,假设使用 Multiway Merge Join,我得到字段 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
也许我必须使用不同的联接?或者在不同的键上?
Merge join
和 Multiway Merge join
的输出将始终包括所有流的所有字段;如果字段重复,它们将以 _1
、_2
等为后缀
一个明显的情况是连接键具有相同的名称(这种情况经常发生),但您也可能有其他同名的字段。
有几种方法可以解决这个问题,但最简单的方法是在连接后执行 Select values
步骤,然后删除重复的字段(Select 值的选项卡之一称为 "Remove",它将删除您指定的任何字段)。
您的最终 ID 字段可以在合并后添加,步骤 Add sequence
。
注意:在加入之前总是对输入进行排序,因为两个合并步骤都假设输入数据已排序。
我在转换中有多个步骤,我在其中连接来自不同流(文件)的数据。所有流都有一个公共字段,即 ID_Time.
现在,当我尝试在 ID_Time 上加入 2 个流时,假设使用 Multiway Merge Join,我得到字段 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
也许我必须使用不同的联接?或者在不同的键上?
Merge join
和 Multiway Merge join
的输出将始终包括所有流的所有字段;如果字段重复,它们将以 _1
、_2
等为后缀
一个明显的情况是连接键具有相同的名称(这种情况经常发生),但您也可能有其他同名的字段。
有几种方法可以解决这个问题,但最简单的方法是在连接后执行 Select values
步骤,然后删除重复的字段(Select 值的选项卡之一称为 "Remove",它将删除您指定的任何字段)。
您的最终 ID 字段可以在合并后添加,步骤 Add sequence
。
注意:在加入之前总是对输入进行排序,因为两个合并步骤都假设输入数据已排序。