我在hdfs中创建了外部表,在hawq中创建了内部表。我正在从sqlserver获取数据,使用talend for 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条答案
按热度按时间6mw9ycah1#
您尝试放入hdfs的字符串超过50个字符。你有两个选择:
在第50个字符处用一个
StringHandling.LEFT(yourcolumn,50)
改变表并使列变大,比如字符(100)或更大。a0zr77ik2#
这主要是数据相关错误。数据包含许多特殊字符,如新行、逗号。这会导致数据移动到另一列,同时将数据从mssqlserver复制到hdfs中的csv中。消除这个问题的最佳方法是在获取数据时在源代码级过滤掉特殊字符。