2017-03-16 149 views
0

我在HDFS中創建了外部表,並在HAWQ中創建了內部表。我從SQL服務器獲取數據,使用了Talend的ETL過程 工藝流程就像 SQLSERVER - >外部表(PXF HAWQ) - >內部表(HAWQ)錯誤:值類型字符太長(50)

在運行我得到以下錯誤

工作

ERROR: value too long for type character(50) (seg0 slice1 phds01.aa.com:40000 pid=297176) Detail: External table podetails_stg0, line 17 of pxf://PHD-HA/test/PoDetails_stg0.csv?profile=HdfsTextSimple, column StockDes

我該如何解決這個錯誤?

回答

1

您嘗試放入HDFS的字符串有超過50個字符。 你有兩個選擇:

  • Trucate的在第50卡拉科特科拉姆與StringHandling.LEFT(yourcolumn,50)

  • 影響你的表,讓你的大柱般的性格(100),甚至更多。

+0

謝謝,我檢查了字符串的大小不超過30列'StockDes'的任何記錄,我仍然收到錯誤 – vkumar

0

這主要是數據相關的錯誤。數據包含許多特殊字符,如新行,逗號。這會導致數據移入另一列,同時將數據從mssqlserver複製到HDFS中的CSV中。 通過在獲取數據時從源代碼級別濾除特殊字符來消除此問題的最佳方法。