处理一个 Kettle 步骤的多个输入
Process multiple inputs to a Kettle step
我正在尝试创建一个有两个输入的步骤。它们都应该采用相同的格式。我需要使用这两个输入流进行处理并输出一个流。
下面是我目前在 processRow() 中的代码:
List<StreamInterface> infoStreams = meta.getStepIOMeta().getInfoStreams();
data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname());
data.twoRowSet = findInputRowSet(infoStreams.get(1).getStepname());
如果它是第一行,所有行都是以下内容:
data.one = getRowFrom(data.oneRowSet);
data.two = getRowFrom(data.twoRowSet);
if (data.one == null && data.two == null) {
setOutputDone();
return false;
}
但是在行 data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname());
上,我收到以下错误:The source step to read from [null] couldn't be found
。
您对此的意见将非常有帮助。谢谢。
编辑:我在这里添加了一个示例转换和我的步骤的源代码:https://github.com/adeydas/KettleMultipleStreams/tree/develop
我似乎找到了解决办法。我在这里写了一个小"how-to":http://abhis.ws/display/KKB/Kettle+transformation+step+with+multiple+input+streams and the code is on GitHub: https://github.com/adeydas/KettleMultipleStreams.
我正在尝试创建一个有两个输入的步骤。它们都应该采用相同的格式。我需要使用这两个输入流进行处理并输出一个流。
下面是我目前在 processRow() 中的代码:
List<StreamInterface> infoStreams = meta.getStepIOMeta().getInfoStreams();
data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname());
data.twoRowSet = findInputRowSet(infoStreams.get(1).getStepname());
如果它是第一行,所有行都是以下内容:
data.one = getRowFrom(data.oneRowSet);
data.two = getRowFrom(data.twoRowSet);
if (data.one == null && data.two == null) {
setOutputDone();
return false;
}
但是在行 data.oneRowSet = findInputRowSet(infoStreams.get(0).getStepname());
上,我收到以下错误:The source step to read from [null] couldn't be found
。
您对此的意见将非常有帮助。谢谢。
编辑:我在这里添加了一个示例转换和我的步骤的源代码:https://github.com/adeydas/KettleMultipleStreams/tree/develop
我似乎找到了解决办法。我在这里写了一个小"how-to":http://abhis.ws/display/KKB/Kettle+transformation+step+with+multiple+input+streams and the code is on GitHub: https://github.com/adeydas/KettleMultipleStreams.