Dataphin中管道任务将FTP数据同步至HIVE,运行报错"您尝试读取的列越界,源文件该行有 [31] 列,您尝试读取第 [32] 列, 数据详情[XXX]”
更新时间:
问题描述
Dataphin中管道任务抽取FTP数据,报错“ERROR DlinkTaskPluginCollector - 脏数据:
{"message":"您尝试读取的列越界,源文件该行有 [31] 列,您尝试读取第 [32] 列, 数据详情[...]”,且读取的中文数据有乱码。完整的报错信息如下:
2021-11-08 16:32:58.733 [0-0-0-reader] WARN UnstructuredStorageReaderUtil - 您尝试读取的列越界,源文件该行有 [31] 列,您尝试读取第 [32] 列, 数据详情
[6321042161686706005,,397255,Y,1-1.0,2-1.5,2021-09-19 06:11:17,2050c888-fc49-4d31-adeb-cd43265a,,0,990,0,0,450,,,0,60,2021-09-20 10:16:56,2,20,16384,50,
2021-09-20 10:16:58,2021-09-20 10:16:58,2021-09-25 01:57:08,2021-09-28 07:06:26,100000174,绂忓埄鐚玘]202104160001,鎮ㄧ殑璐﹀彿宸茶绯荤粺棰勮涓烘秹瀚屾伓鎰忓埛鍙栧钩鍙扮Н鍒嗭紝杩涜涓嶅綋鑾峰埄銆備负淇濋殰鎮ㄧ殑鏉冪泭锛岃浜�72灏忔椂鍐呮彁浜ゅ疄鍚嶈璇佺敵璇凤紝瀹℃牳閫氳繃鍚庡皢瑙i攣銆俕]0,1,]
2021-11-08 16:32:58.741 [0-0-0-reader] ERROR DlinkTaskPluginCollector - 脏数据:
{"message":"您尝试读取的列越界,源文件该行有 [31] 列,您尝试读取第 [32] 列, 数据详情[6321042161686706005,,397255,Y,1-1.0,2-1.5,2021-09-19 06:11:17,2050c888-fc49-4d31-adeb-cd43265a,,0,990,0,0,450,,,0,60,2021-09-20 10:16:56,2,20,16384,50,2021-09-20 10:16:58,2021-09-20 10:16:58,2021-09-25 01:57:08,2021-09-28
问题原因
客户配置的读取FTP数据的reader编码格式为GBK导致,切换为UTF-8即可。客户设置的编码如下:
"dsId":"XXXXXX",
"dsName":"XXXX",
"encoding":"gbk",
"fieldDelimiter":"^]",
"fileFormat":"text",
"host":"XX.XX.XX.XX",
"password":"***********",
"path":[
"/u01/data/ecif/XXXX/20211103/XXXXXXX.txt"
],
"port":"22",
"protocol":"SFTP",
"skipHeader":true,
"username":"XXXXXX"
"stepType":"ftp"
解决方案
编码格式切换为UTF-8即可。
适用于
- Dataphin
该文章对您有帮助吗?