Talend 如何检查行流是否已结束

Talend 如何检查行流是否已结束,talend,Talend,有没有办法让我知道这一连串的争吵是否已经结束?也就是说,如果作业位于最后一行? 我想做的是每10行做一件事,我的问题是最后一行,例如在115行中,最后5行不会发生,但我需要它们。Talend中没有内置功能可以告诉你是否在最后一行。您可以使用以下方法之一解决此问题: 事先获取行数。例如,如果您有一个文件 可以使用tFileRowCount计算行数,然后在 如果要处理文件,请为当前行使用变量 号码,这样你就可以知道你是否到达了最后一行。如果你的 数据来自数据库,您可以发出 提前返回总行数,或修改主

有没有办法让我知道这一连串的争吵是否已经结束?也就是说,如果作业位于最后一行?
我想做的是每10行做一件事,我的问题是最后一行,例如在115行中,最后5行不会发生,但我需要它们。

Talend中没有内置功能可以告诉你是否在最后一行。您可以使用以下方法之一解决此问题:

  • 事先获取行数。例如,如果您有一个文件 可以使用
    tFileRowCount
    计算行数,然后在 如果要处理文件,请为当前行使用变量 号码,这样你就可以知道你是否到达了最后一行。如果你的 数据来自数据库,您可以发出 提前返回总行数,或修改主 查询以返回附加列中的总行数,并 使用它(使用排名函数)

  • 在subjob结束后进行一些处理:可能会出现一些情况 如果需要对最后一行进行特殊处理,则可以实现 这是通过获取上一个子对象处理的最后一行(其中 例如,您已经通过放置
    tSetGlobalVar
    在目标之后,当subjob完成时,变量包含最后写入的值)

编辑


对于您的用例,您可以做的是首先使用
tHashOutput
将API调用的结果存储在内存中,然后使用
tHashInput
读取它以进行处理,然后,您将知道使用
tHashOutput
的全局变量
tHashOutput\u X\u NB\u LINE
检索到了多少行。我正在查找类似于row1的内容。hasNext(),但在talendHi中,感谢您的回答,不幸的是,这个答案不适用于我,因为我从一个我无法控制的API获取数据。再次感谢你,也许调用API两次更好(一次用于计数,另一次用于实际处理)。