Reason: actual column number is more than schema column number.actual number: 21, column separator: [ ], line delimiter: [
], schema number: 20; . src line [XXXXX,XXXXXXX,XXXXXX];
现象:
DataX读取的字段比job中column的字段个数多或者少,或者一行数据转换为多行数据
问题描述:
DataX是将reader读取到的数据,默认是CSV格式,分隔符是\t,单行数据分割符是\n\r,所以当读取到的字段中包含\t时,会将一列数据转换为两列,包含\n\r时,会将一行数据转换为两行。导致writer时,报Reason: actual column number is more than schema column number.actual number: 21异常
处理方式:
在字段中使用对该列使用replace函数进行处理
1、单独处理制表符
“REPLACE(columnName, ' ', '')
2、处理字段中包含制表符、回车符和换行符
REPLACE(REPLACE(REPLACE(columnName, chr(10),' '), chr(13), ''), chr(9),' ')