0

我在 HDFS 中创建了外部表,在 HAWQ 中创建了内部表。我正在从 SQL Server 获取数据,使用 talend 进行 etl 进程 流程就像 SQLSERVER -> EXTERNAL TABLE(PXF HAWQ) -> INTERNAL TABLE(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

我应该如何解决这个错误?

4

2 回答 2

1

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

  • 在第 50 个字符处用StringHandling.LEFT(yourcolumn,50)

  • 更改您的表格并使您的列更大,例如字符(100)甚至更多。

于 2017-03-16T13:27:59.537 回答
0

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

于 2017-07-29T18:40:02.333 回答