0
我有這種數據的處理,字符串在Talend
12345利帕AVE,AKA 1234 LIPA AVE,利帕市,LP,12345
我希望這變成這樣:
所有我要去處理數據具有1個逗號到地址分離和另一種情況下是上面的2逗號。
1個逗號的一個例子是下面,
12345利帕AVE,利帕市,LP,12345
我有這種數據的處理,字符串在Talend
12345利帕AVE,AKA 1234 LIPA AVE,利帕市,LP,12345
我希望這變成這樣:
所有我要去處理數據具有1個逗號到地址分離和另一種情況下是上面的2逗號。
1個逗號的一個例子是下面,
12345利帕AVE,利帕市,LP,12345
最簡單的解決方法是統一的結構中,然後進行映射。在這種情況下,它意味着第一轉換4列結構(1個逗號情況下)轉換成5列(2逗號情況下),其中所述第二字段是空的。 該圖如下: tFileInputFullRow -> tJavaRow -> tExtractDelimitedField -> tMap -> tFileOutputDelimited
所以首先讀完整行,然後檢測大小寫,如果需要插入額外的列。該tJavaRow代碼如下:
output_row.line = "";
String[] elements = input_row.line.split(",");
if(elements.length == 4)
elements[0] += ",";
for(String element:elements)
output_row.line += element + ",";
在tExtractDelimitedField設置隔板到逗號和最後在TMAP兩個地址字段合併爲一個:
row3.address2 != null && !row3.address2.equals("") ? row3.address1 + "," + row3.address2 : row3.address1
的tExtractDelimitedField可以在tJavaRow由被跳過更改輸出模式,然後逐個傳遞數組元素。
您好,先生,謝謝你的回覆。你能告訴我一個這樣的例子嗎?我無法完成它。對不起,我上了Talend有點新的,我做就怎麼做這個實驗。謝謝! @Ernest –
嘗試創建一個新的工作,並把我在文章中提到的組件:'tFileInputFullRow - > tJavaRow - > tExtractDelimitedField - > tMap - > tFileOutputDelimited' 這些屬性非常直觀,所以我認爲你會找到正確的設置很容易。輸入和輸出側的方案是一個String柱直到tExtractDelimitedField組件,你應該串類型輸出模式更改爲5列。 –