我有这样的工作流程,
tAccessInput_1 - > tMap_1 - > tSortRow_1 - > tJava - > tBufferOutput_1 是否可以在每次迭代时在tJava组件中的 tBufferOutput_1 中显示数据。如果可能,我该怎么办?
答案 0 :(得分:1)
如果您只想输入输入到tBuffer组件中的任何内容,请尝试连接到 tLogRow 组件,该组件将吐出控制台中的所有内容。
如果你因为某些其他特殊原因想要tJava,这里有一个稍微复杂的方法:
tBufferOutput_1 - > tFlowToIterate - > tIterateToFlow - > tJava
然后,在tJava中,您可以执行以下操作: System.out.println((String)globalMap.get(“row.column”));
其中:
row 是tIterateToFlow到tJava之间的主数据行的名称(例如row6)
列是您要输出的任何架构列
数据被转换为String,但在您的情况下,它可能是整数或其他内容。
您需要将流更改为迭代的原因是因为tJava需要迭代才能打印所有行(正如您在问题中正确指出的那样)。
答案 1 :(得分: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 Code生成器替换
列是您要输出的任何架构列