我有一個 talend 作業,我試圖從 csv 檔案中逐行依次讀取 COLUMN A 和 COLUMN B 的每個組合(如果可能嘗試收集唯一組合)的列,以獲取值并存盤在 tjava 中(背景關系變數重用和查詢 tdbinput)
CSV 格式如下:

選項 1:我的作業設計如下所示:tfilelist-Iterate-->tjava -->tdbinput
Tjava:
```
`int n = 600; // The line number
int i=0;
String line="";
int linenumber=0;
```
`try(BufferedReader br = new BufferedReader(new FileReader((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))))`
`{`
`while ((line = br.readLine()) != null && linenumber< n )`
`{`
`if(iteration == 0)`
`{`
`iteration ;`
`continue;`
`}`
`String[] tokens = line.split(",");`
```
for(String token : tokens)
{
//Print all tokens
System.out.println(token);
}
```
`context.columnA=tokens[0];`
`context.columnB=tokens[1];`
```
linenumber ;
}
```
```
```
當我嘗試在另一個組件 tdbinput 中使用 context.columnA 時,它將具有最后覆寫的值,而不是每個行序列的迭代值
tdinput: select * from test where testcol='" context.columnA "'; 結果為空,因為 tjava 中的 context.columnA 值為空
選項 2:我嘗試使用:tfileinputdelimited--main-->tjavarow
tjavarow:
context.columnA = input_row.columnA ;
context.columnB= input_row.columnB;
但這種方法并不能幫助我直接將輸入傳遞給 tdbinput(使用 select 查詢資料庫)
所以我想知道是否有辦法從 tfileinputdelimited---iterate-->tjava 進行迭代???但無法在組件之間存盤架構結果。
更新了方法 2 的作業設計: 在此處輸入影像描述
任何人都請建議一種方法來執行使用 java 代碼來處理它或調整 talend 組件以達到所需的結果
uj5u.com熱心網友回復:
嘗試使用您的第二種方法:
tfileinputdelimited ->tJavaRow-main1->tFlowtoIterate->tdbInput
您可以在 tdbInput 中使用全域變數,如下所示((String)globalMap.get("main1.lot"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/523231.html
標籤:爪哇数组细绳CSV人才
