使用pentaho kettle(也称为pdi),我有一个“Join Rows(笛卡尔积)”步骤,它合并了两个数据流。
第一个和第二个流都附加了数值。例如,
Stream 1 - Values 1, 3, 5
Stream 2 - Values 2, 4, 6
我想加入两个流来获得以下输出:
(1, 2)
(3, 4)
(5, 6)
我会描述正确的输出,因为第1流选择的最小值大于第1流的值。
在Join Rows步骤中,我可以指定值2大于stream 1值的流2。不幸的是,这会产生以下错误结果:
(1, 2)
(1, 4)
(1, 6)
(3, 4)
(3, 6)
(5, 6)
我应该使用不同的步骤而不是在水壶中使用“Join Rows”吗?或者我错过了连接行步骤的设置?
注意:我还查看了使用Stream Lookup步骤,但它仅适用于equals而不适用于我的逻辑。
感谢。
答案 0 :(得分:1)
你已经到了一半了。
(1, 2) (1, 4) (1, 6) (3, 4) (3, 6) (5, 6)
(Stream1, Stream2, result) (1, 2, 1) (1, 4, 2) (1, 6, 3) (3, 4, 1) (3, 6, 2) (5, 6, 1)
我上传了“example.ktr”解决方案(我使用的是Kettle 4.3。版本):