![](/img/trans.png)
[英]Processing a single group of rows at once in Talend Open Studio for Data Integration
[英]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。 請讓我知道如何。
如果我正確理解了您的描述,則希望對確實具有特定小時值的所有列求和。 您可以結合使用tMap和tAggregateRow 。
首先,您將定義一個在右側具有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.