如何检查行流是否已结束

时间:2018-05-23 14:11:27

标签: talend

有没有办法让我知道行流是否已经结束?也就是说,如果作业在最后一行? 我试图做的是每10行做一些事情,我的问题是最后一行,例如115行,最后5行不会发生,但我需要它们。

1 个答案:

答案 0 :(得分:1)

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

  • 事先获取行数。例如,如果你有一个文件,那么你 可以使用tFileRowCount来计算行数,然后在你的时候 处理您的文件,您使用当前行的变量 数字,所以你可以判断你是否到达了最后一行。如果你的 数据来自数据库,您可以发出查询 预先返回总行数,或修改主要行 查询以返回附加列中的总行数 使用它(使用排名功能)。

  • 在subjob结束后进行一些处理:可能存在情况 你需要对最后一行进行特殊处理,你可以实现 通过获取前一个subjob处理的最后一行(其中 例如,您已经保存了tSetGlobalVar 在你的目标之后,当你的子工作完成后,你的变量包含最后写的值。)

修改

对于您的用例,您可以做的是首先使用tHashOutput将API调用的结果存储在内存中,然后使用tHashInput进行阅读以便对其进行处理,并且您可以;然后知道您使用tHashOutput的全局变量tHashOuput_X_NB_LINE检索了多少行。