有没有办法让我知道行流是否已经结束?也就是说,如果作业在最后一行? 我试图做的是每10行做一些事情,我的问题是最后一行,例如115行,最后5行不会发生,但我需要它们。
答案 0 :(得分:1)
Talend中没有内置功能,可以告诉您是否在最后一行。您可以使用以下方法解决此问题:
事先获取行数。例如,如果你有一个文件,那么你
可以使用tFileRowCount
来计算行数,然后在你的时候
处理您的文件,您使用当前行的变量
数字,所以你可以判断你是否到达了最后一行。如果你的
数据来自数据库,您可以发出查询
预先返回总行数,或修改主要行
查询以返回附加列中的总行数
使用它(使用排名功能)。
在subjob结束后进行一些处理:可能存在情况
你需要对最后一行进行特殊处理,你可以实现
通过获取前一个subjob处理的最后一行(其中
例如,您已经保存了tSetGlobalVar
在你的目标之后,当你的子工作完成后,你的变量包含最后写的值。)
修改强>
对于您的用例,您可以做的是首先使用tHashOutput
将API调用的结果存储在内存中,然后使用tHashInput
进行阅读以便对其进行处理,并且您可以;然后知道您使用tHashOutput
的全局变量tHashOuput_X_NB_LINE
检索了多少行。