带双引号的 CSV 的无效引号格式(Redshift 加载)
Posted
技术标签:
【中文标题】带双引号的 CSV 的无效引号格式(Redshift 加载)【英文标题】:Invalid quote formatting for CSV with double quotes (Redshift loading) 【发布时间】:2015-08-11 02:31:14 【问题描述】:我有一个包含以下内容的 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
当我运行 COPY 命令时,我收到一个错误“CSV 的引号格式无效”
这是为什么呢?它在引号之前有反斜杠,所以它应该是可以接受的。我看到 Redshift 说要使用 "" 代替 (https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html#copy-data-format-parameters) 但有没有办法告诉它接受 \" 因为这是使用 CSV 转义引号的有效方法?
我已经尝试过谷歌搜索,但没有看到这行不通的原因。
【问题讨论】:
【参考方案1】:实际上并没有办法强制 Redshift 使用反斜杠作为转义字符。
您必须将输入数据转换为 Redshift 可以处理的格式。一种方法是用双引号替换所有反斜杠。例如,
"\"assets\":[]"
转换为 """assets"":[]"
,然后可由 Redshift 解析,最终该字段的实际数据应类似于 "assets":[]
。
来自docs:
默认的引号字符是双引号 ( " )。当 引号字符在字段中使用,使用转义字符 额外的引号字符。例如,如果引号字符是 双引号,插入字符串
A "quoted" word
输入 文件应包含字符串"A ""quoted"" word"
【讨论】:
以上是关于带双引号的 CSV 的无效引号格式(Redshift 加载)的主要内容,如果未能解决你的问题,请参考以下文章