Apache Drill处理含转义字符的CSV列值时的解析错误问题咨询
Apache Drill处理含转义字符的CSV列值时的解析错误问题咨询
大家好,我最近在用Apache Drill 1.21.1解析CSV文件时遇到了一个棘手的问题,想请教下社区的朋友们:
问题场景
我有两种格式的CSV文件,第一种以^作为分隔符,内容如下:
"id"^"first_name"^"last_name"^"email"^"gender" "1"^"John"^"143 \"^"ewilkes0@buzzfeed.com"^"Male" "2"^"Willaim"^"Khan"^"bmacdonald1@microsoft.com"^"Male"
当我对这个文件执行Drill查询时,直接抛出了错误:
UserRemoteException : DATA_READ ERROR: Unexpected character '101' following quoted value of CSV field. Expecting '94'. Cannot parse CSV input.
但换成第二种以^|^作为分隔符的CSV,查询就完全正常,文件内容如下:
^id^|^first_name^|^last_name^|^email^|^gender^ ^1^|^John^|^Bharadwaj \^|^ewilkes0@buzzfeed.com^|^Male^ ^2^|^Willaim^|^Khan^|^bmacdonald1@microsoft.com^|^Male^
我的Drill DFS配置(CSV部分)
目前我在DFS存储插件里的CSV配置片段如下:
"csv": { "type": "text", "extensions": [ "csv" ], "lineDelimiter": "\n", // 其他配置项未完全列出 }
我的疑问
为什么第一种CSV会出现解析错误?是不是转义字符或者分隔符的配置有遗漏?有没有办法调整Drill的CSV解析配置来兼容第一种格式的文件?
备注:内容来源于stack exchange,提问作者Achyut Muley
相关产品推荐
相关产品推荐

