2016-03-03 174 views
0

我有一個excel字段,但excel中的第一行是空白的,其他幾行的日期格式爲MM/dd/yyyy HH:mm:ss。 要加載到Postgresql表中的數據,數據類型爲timestamp yyyy-mm-dd HH:mm:ss。 由於正在從雲端下載並且數據直接加載到表格中,Excel無法修改。
我試過使用tConvert類型,但它不能接受時間戳中的null或「」值。
我在talend運行時正面臨空tMap錯誤。即使我嘗試從字符串轉換爲日期格式以便在tmap中傳遞null,它將更改日期格式並顯示錯誤。如何處理?在talend中處理空和日期格式

該了Talend結構是:
tFileInputExcel - > TMAP(日期字段:MM/DD/YYYY HH:MM:SS) - > tConvertType(日期字段:YYYY-MM-DD HH:MM:SS) - > TMAP(YYYY-MM-DD HH:MM:SS) - > PostgreSQL表

這裏是Excel的截圖:
enter image description here

回答

0

起初,我不太明白爲什麼要使用tConvertType組件。在定義了適當的模式之後,Talend正在將您的數據轉換爲Java Date對象,並且從那時起格式並不重要,您不必在將它放入Postgres表格時將其轉換。至少它不應該導致NullPointerException。

考慮以下步驟:

樣品輸入文件

input file with empty strings/spaces/nulls

我準備帶日期值/空間/空字符串,解決我所描述的作品也與空某些文件。

配置tFileInputExcel組件

你必須允許通過檢查可空複選框中取空值。你也應該檢查修剪選項。

tFileInputExcel sample schema

檢查輸出

輸入部件連接到tLogRow空/空/空值被正確地處理後。

tLogRow with null values

我希望這會有所幫助。

0

可以TMAP組件內捕獲的日期格式或空處理在可變

var :TalendDate.formatDate("yyyy-mm-dd HH:mm:ss",row1.columnname) 

因此數據流會

tFileInputExcel ---> TMAP ---> PostgreSQL表