0

我有这样的工作流程,

tAccessInput_1 --> tMap_1 --> tSortRow_1 --> tJava --> tBufferOutput_1。 这是否可以在每次迭代时在 tJava 组件中显示tBufferOutput_1中的数据。如果可能的话,我该怎么办?

4

2 回答 2

1

如果您尝试将输入的任何内容输出到 tBuffer 组件中,请尝试连接到tLogRow组件,该组件将在控制台中输出所有内容。

如果您出于其他特定原因需要 tJava,这里有一个稍微复杂的方法:

tBufferOutput_1 -> tFlowToIterate -> tIterateToFlow -> tJava

然后,在 tJava 中,您可以执行以下操作: System.out.println((String) globalMap.get("row.column"));

在哪里:

row是 tIterateToFlow 到 tJava 之间的主要数据行的名称(例如 row6)

column是您要输出的任何架构列

数据被转换成一个字符串,但在你的情况下它可能是一个整数或其他东西。

您需要将流程更改为迭代的原因是因为 tJava 需要迭代才能打印所有行(正如您在问题中正确指出的那样)。

于 2012-11-26T14:20:05.607 回答
0

正如llaen所解释的,最好的解决方案是使用tLogRow在 Talend/Java 控制台中打印每一行。如果要自定义打印方式,最好使用 tJavaRow(而不是 tJava)以避免使用 tFlowToIterate 和 tIterateToFlow

tAccessInput_1 --> tMap_1 --> tSortRow_1 --> tJavaRow --> tBufferOutput_1

然后,在 tJavaRow 中,使用以下 java 代码:System.out.println(input_row.column)

其中:
input_row将被自动解释并被 Talend 代码生成器
替换为您要输出的任何模式列

于 2013-01-22T13:10:58.080 回答