Snowflake COPY INTO加载含Ú分隔符文件失败,求适配的File Format分隔符
解决Snowflake加载pandas导出CSV的分隔符问题
你用pandas导出CSV时指定的分隔符是Ú,要在Snowflake的FILE FORMAT里正确识别这个分隔符,核心是匹配导出时的字符编码(pandas默认UTF-8):
- 首先明确
Ú的UTF-8十六进制编码为C39A,之前尝试无效大概率是用了错误的编码值(比如Latin-1下的DA,但导出用的是UTF-8)。 - 创建对应FILE FORMAT的SQL语句:
CREATE OR REPLACE FILE FORMAT pandas_utf8_csv TYPE = CSV FIELD_DELIMITER = X'C39A' COMPRESSION = GZIP SKIP_HEADER = 0 -- 导出时设了header=False,无需跳过表头 NULL_IF = ('NULL') -- 和导出的na_rep='NULL'对应 INDEX_ERROR = TRUE -- 可选,用于排查字段不匹配问题 ;
- 用该文件格式执行COPY INTO:
COPY INTO target_table FROM @your_stage/your_file.csv.gz FILE_FORMAT = (FORMAT_NAME = pandas_utf8_csv);
如果仍有问题,可先在Snowflake里验证编码一致性:执行SELECT TO_HEX('Ú');,返回值应为C39A。若不符,需确保Session用UTF-8编码,执行ALTER SESSION SET CHARACTER_SET_CLIENT = 'UTF8';即可。
内容的提问来源于stack exchange,提问作者gayathri
相关产品推荐
相关产品推荐

