阿里云首页

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
首页 Dataphin中管道任务将FTP数据同步至HIVE,运行报错"您尝试读取的列越界,源文件该行有 [31] 列,您尝试读取第 [32] 列, 数据详情[XXX]”