预计将解析从 S3 加载的雪花数据中的列时到达记录末尾
Posted
技术标签:
【中文标题】预计将解析从 S3 加载的雪花数据中的列时到达记录末尾【英文标题】:End of record reached while expected to parse column in snowflake data loading from S3 【发布时间】:2021-10-29 10:01:58 【问题描述】:我正在将数据从 S3 阶段加载到我的雪花表,但出现以下错误:
目前文件格式为csv类型,由转义字符分隔
在预期解析列 '"ABC"["T_STMP":29]' 时到达记录末尾 如果您想在遇到错误时继续加载,请使用其他值,例如 'SKIP_FILE' 或 'CONTINUE' ON_ERROR 选项。有关加载选项的更多信息,请在 SQL 客户端中运行“info loading_data”。
我也检查了数据,T_STMP 的值在换行,雪花被认为是文件的结尾
1234562020-11-18
07:41:12.336COVIDABC.comhttps://www.covide.com/bright-
keno/u-glass/2020/xyz-a-33/chat-pnevery goodcls F-
CLASS12345Very-free REl Men Rare CTR. WATCH
ABCDR. HEYA MOO https://abc.ABCD.com/v2/abc-xyze-
chore/sdfgsjhdfgjdhfkjdh/HIIII/HELLO-ABC_EFG_I-123-
5.jpgCENTCANT
2010-11-15 10:12:30.083663sysadmin0001-01-01 00:00:00.0wwwww33ww-
2a2a-1a1a-7ff6-3434343trtr36352020-15-15 10:44:05.79
错误出现在最后第三行的时间戳列中应该是这样的:
5.jpgCENTCANT2010-11-15 10:12:30.083663
我知道这很难理解,但是数据质量太差了!
文件为csv类型,由转义字符分隔
任何帮助将不胜感激
【问题讨论】:
您能否提供 COPY INTO 命令以及存在问题的行的示例? 如果您共享一个示例记录并复制命令将有助于快速找出问题? 【参考方案1】:由于具有 100 多个不同字符长度的列作为结果时间戳和其他列进入新行而导致的错误。
解决方案是在 sqoop 导入作业中用空字符串替换所有那些冗长的列的换行符、回车符、退格符:
REPLACE(REPLACE(REPLACE(length_column,CHAR(8),''),CHAR(10),''),CHAR(13),'') as
length_column
【讨论】:
以上是关于预计将解析从 S3 加载的雪花数据中的列时到达记录末尾的主要内容,如果未能解决你的问题,请参考以下文章