繁体   English   中英

在Talend Open Studio中对行进行计数并将结果保存在数组(映射)中

[英]Counting rows and saving the result in array (map) in Talend Open Studio

我在Talend Open Studio工作。 它应该对已过滤的输入行进行计数并将其存储在适当的变量中。 输入文件为csv。 稍后,我使用tMap仅选择所选日期的行:

地图

然后我被卡住了。 我只需要一个具有24小时(值0-23)的数组(或数组映射?),并在每次时间匹配时递增它们。

如何在Talend中实现可在tMap内部使用的数组(可以使用第三方库)? 还是有其他方法可以做到这一点? 我想将这些变量值输出到csv。

我建议您编写一个用户定义的函数并在tmap中调用它。

public static String loop_cntr(Int cntr){

String ARR = "" ;
for(int i=0;i<cntr;i++){
<your logic to build the array>
ARR = ARR + cntr (something like this)
}
return ARR
)

现在您可以在tMap中使用该功能,例如loop_cntr(20)

我假设您知道如何编写自定义函数Code-> Routines。 请让我知道如何。

如果我正确理解了您的描述,则希望对确实具有特定小时值的所有列求和。 您可以结合使用tMaptAggregateRow

首先,您将定义一个在右侧具有24列的tMap。 一行一行,只有在满足条件的情况下才可以填写,例如

TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 0

进入columnHour0

TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 1

进入columnHour1等,直到columnHour23

现在,连接tAggregateRow并在“操作”框中的“每小时”列进行求和。 这样只会导致所有已计算小时数条目的一行。

您知道tflowmeter和tflowmetercatcher的组件吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM