错误:类型字符的值太长(50)

时间:2017-03-16 11:51:22

标签: hadoop hdfs talend hawq

我在HDFS中创建了外部表,在HAWQ中创建了内部表。我从SQL Server获取数据,使用talend进行etl进程 流程就像 SQLSERVER - >外部表(PXF HAWQ) - >内部表(HAWQ)

在运行作业时,我遇到错误

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

我应该如何解决此错误?

2 个答案:

答案 0 :(得分:1)

您尝试放入HDFS的字符串超过50个字符。 你有两个选择:

  • 使用StringHandling.LEFT(yourcolumn,50)

  • 在第50个字符处填写列号
  • 改变你的表格,让你的专栏更像字符(100)甚至更多。

答案 1 :(得分:0)

这主要是数据相关的错误。数据包含许多特殊字符,如换行符,逗号。这导致数据移入另一列,同时从mssqlserver将数据复制到HDFS中的CSV。 通过在获取数据时在源级别过滤掉特殊字符来消除此问题的最佳方法。