簡體   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