我正在使用 Python 将信息批量加载到 Snowflake。我使用 Pandas 从源系统中提取数据并将其加载到 csv 中。将数据复制到 Snowflake 时出现此问题。
我收到以下错误:
snowflake.connector.errors.ProgrammingError: 100065 (22000): Found character '4' instead of field delimiter ','
该字段挂在字段内的以下文本上。
"[**EXTERNAL**]: BID: ""4597290 - PERSONNE"
如您所见,在导致转义的 4597290 之前排了双引号。不了解如何摆脱这个特定问题,但我已成功用于其他文件的内容如下:
'file_format = (type = "csv" SKIP_HEADER = 1 FIELD_OPTIONALLY_ENCLOSED_BY = '"' ESCAPE = ' ')
是否有一种文件格式可以让我适应上述示例,或者最佳做法是仅删除此字段上的引号?
答案 0 :(得分:1)
我可以想到一些选项,另外您可以浏览论坛以获取其他想法(即,如何处理双引号字段中的双引号)。
您可以对数据进行预处理。这可能包括删除双引号,可能用另一对双引号将其转义,或者使用一组不同的字段分隔符或字段外壳。
您可以通过删除 FIELD_OPTIONALLY_ENCLOSED_BY 字段并稍后根据需要进行后处理来加载包含所有双引号的数据。下面的示例使用您现有的文件格式并删除该字段。
COPY INTO FORUMTEST from @TEST/forumtest.csv.gz file_format = (type = CSV ESCAPE = ' ');
COPY into FORUMTEST from (select replace($1,'"',''), replace($2,'"',''), replace($3,'"','') 来自@TEST/forumtest.csv.gz file_format) file_format=(type = CSV ESCAPE = ' '));