雪花复制到-多列转义处理

时间:2020-06-05 23:12:46

标签: snowflake-cloud-data-platform

将csv文件中的数据加载到Snowflake时,我遇到了一个特殊情况。

我有多个列需要重做

  1. 包含在“中的列并包含列-可以正确处理
  2. 包含在“但也包含在数据中的列,即(“ \” DataValue \“”“)

我的文件格式如下:

    ALTER FILE FORMAT DB.SCHEMA.FF_CSV_TEST 
    SET COMPRESSION = 'AUTO' 
    FIELD_DELIMITER = ',' 
    RECORD_DELIMITER = '\n' 
    SKIP_HEADER = 1 
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    TRIM_SPACE = FALSE 
    ERROR_ON_COLUMN_COUNT_MISMATCH = FALSE 
    ESCAPE = NONE
    ESCAPE_UNENCLOSED_FIELD = 'NONE' 
    DATE_FORMAT = 'AUTO' 
    TIMESTAMP_FORMAT = 'AUTO' 
    NULL_IF = ('\\N');

“”中包含逗号的列已得到很好的处理。但是,其余类似(“ \” DataValue \“”)的列返回错误:

找到了字符“ V”,而不是字段定界符“,”

有没有办法解决这个问题?

我尝试对舞台本身使用选择:

    select t.$1, t.$2, t.$3, t.$4, t.$5, TRIM(t.$6,'"')
    from @STAGE_TEST/file.csv.gz t
    LIMIT 1000;

t。$ 5是用“括起来并且包含逗号的列 和t。$ 6是(“ \” DataValue \“”“)

除了开发在处理成Snowflake之前将其删除的python(或其他)代码外,还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

将\添加到转义参数。看来您的报价值已正确转义,因此应该注意那些报价。