在 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.
你知道组件 tflowmeter 和 tflowmetercatcher 吗?
我建议您编写一个用户定义的函数并在 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
)
现在您可以像 loop_cntr(20)
一样在 tMap 中使用此功能
我假设您知道如何编写自定义函数代码-->例程。
请告诉我进展如何。
如果我对您的描述的理解正确,您想要对具有特定小时值的所有列求和。您可以结合使用 tMap 和 tAggregateRow.
首先,您将定义一个右侧有 24 列的 tMap。逐行,只有在满足条件时才会填充,例如
TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 0
进入columnHour0,
TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 1
进入 columnHour1 等直到 columnHour23.
现在连接 tAggregateRow 并对 "Operations" 框中的每小时列求和。这应该导致只有一行包含所有计算的小时条目。
我在 Talend Open Studio 工作。它应该计算过滤后的输入行并将其存储在足够的变量中。输入文件是 csv。稍后我使用 tMap 只获取选定日期的行:
然后我就卡住了。我只需要一个 24 小时(值 0-23)的数组(或数组映射?)并在每次时间匹配时递增它们。
如何在 Talend 中实现一个可以在 tMap 中使用的数组(我可以使用第三方库)?还是有其他方法可以做到这一点?我想将这些变量值输出到 csv.
你知道组件 tflowmeter 和 tflowmetercatcher 吗?
我建议您编写一个用户定义的函数并在 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
)
现在您可以像 loop_cntr(20)
一样在 tMap 中使用此功能我假设您知道如何编写自定义函数代码-->例程。 请告诉我进展如何。
如果我对您的描述的理解正确,您想要对具有特定小时值的所有列求和。您可以结合使用 tMap 和 tAggregateRow.
首先,您将定义一个右侧有 24 列的 tMap。逐行,只有在满足条件时才会填充,例如
TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 0
进入columnHour0,
TalendDate.getPartOfDate("HOUR",row1.Time_Stamp) == 1
进入 columnHour1 等直到 columnHour23.
现在连接 tAggregateRow 并对 "Operations" 框中的每小时列求和。这应该导致只有一行包含所有计算的小时条目。