带双引号的CSV的报价格式无效(Redshift加载)

Som*_*Guy 2 csv amazon-redshift

我有一个包含以下内容的CSV:

id,homie_id,user_id,some_data,some_datetime,list_stuff,confirmed_at,report_id
     1,57,1,,,"{\"assets\":[]}","2014-12-26 16:50:32",18
     2,59,1,,,"{\"assets\":[]}","2014-12-26 16:50:46",18
Run Code Online (Sandbox Code Playgroud)

当我运行COPY命令时,出现错误"CSV的报价格式无效"

这是为什么?它在引用前有反斜杠,因此应该可以接受.我看到Redshift说使用""代替(https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html#copy-data-format-parameters)但是有一个告诉它接受"因为这是一种有效的方法来逃避CSV的报价?

我已经尝试了谷歌搜索,并没有看到这不起作用的原因.

Xia*_* Yu 5

实际上没有办法强制Redshift使用反斜杠作为转义字符.您必须将输入数据转换为Redshift可以处理的格式.一种方法是用双引号替换所有后背.例如, "{\"assets\":[]}"转换"{""assets"":[]}"为可由Redshift解析,最后实际数据应该与{"assets":[]}该字段类似 .

来自文档:

默认引号字符是一个双引号(").当引用字符是一个字段内使用,逃避与附加引号字符的字符.例如,如果引用字符是一个双引号,插入串A "quoted" word的输入文件应包含字符串"A ""quoted"" word"