我在Talend Open Studio找到了一份工作。它应该计算过滤的输入行并将其存储在适当的变量中。输入文件是csv。后来我使用tMap只拍摄选定日期的行:
然后我被卡住了。我只需要一个24小时(值为0-23)的数组(或数组映射?),并在每次匹配时递增它们。
如何在Talend中实现一个我可以在tMap中使用的数组(我可以使用第三方库)?或者还有其他方法吗?我想将这些变量值输出到csv。
答案 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吗?