2017-03-16 86 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中。 通过在获取数据时从源代码级别滤除特殊字符来消除此问题的最佳方法。

相关问题