计算行并将结果保存在Talend Open Studio中的数组(map)中

时间:2017-05-16 13:31:21

标签: java arrays talend

我在Talend Open Studio找到了一份工作。它应该计算过滤的输入行并将其存储在适当的变量中。输入文件是csv。后来我使用tMap只拍摄选定日期的行:

tMap

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

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

3 个答案:

答案 0 :(得分:0)

我建议你编写一个用户定义的函数并在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)

我假设您知道如何编写自定义函数代码 - &gt; Routines。 请告诉我它是怎么回事。

答案 1 :(得分:0)

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

首先,您将在右侧定义一个包含24列的tMap。行的行,只有在满足条件时才会填充,例如

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

进入 columnHour0

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

进入 columnHour1 等,直到 columnHour23

现在连接 tAggregateRow 并在“操作”框中汇总每小时列。这应该只导致一行包含所有计算的小时条目。

答案 2 :(得分:-1)

你知道组件tflowmeter和tflowmetercatcher吗?