Amazon Redshift - CSV中的COPY - 行中的单个双引号 - CSV错误的引用格式无效

Dun*_*can 8 csv amazon-redshift

我正在从S3加载一个CSV文件到Redshift.此CSV文件是包含PageUrl的分析数据(例如,查询字符串中可能包含用户搜索信息).

它会在有单个双引号字符的行上窒息,例如,如果有一个14"玩具的页面,那么PageUrl将包含:

http://www.mywebsite.com/a-14"-toy/1234.html

可以理解的是,Redshift无法处理这个问题,因为它期待一个收盘双引号字符.

我看到它的方式是我的选择:

  1. 预处理输入并删除这些字符
  2. 在Redshift中配置COPY命令以忽略这些字符但仍加载该行
  3. 将MAXERRORS设置为较高值并使用单独的过程清除错误

选项2将是理想的,但我找不到它!

如果我只是不够努力,还有其他任何建议吗?

谢谢

邓肯

aye*_*etd 9

这是2017年,我遇到了同样的问题,很高兴地报告现在有一种方法来获得红移以加载带有奇怪数据的csv文件.

诀窍是使用ESCAPE关键字,也不使用CSV关键字.我不知道为什么,但在复制命令中将CSV和ESCAPE关键字放在一起导致失败,并显示错误消息"CSV与ESCAPE不兼容;" 但是,如果没有更改加载的数据,我可以在从COPY命令中删除CSV关键字后成功加载.

您也可以参考此文档以获取帮助:http: //docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-escape


Joh*_*ein 6

不幸的是,没有办法解决这个问题.在将文件加载到Amazon Redshift之前,您需要预先处理该文件.

最接近的选项是CSV [ QUOTE [AS] 'quote_character' ]在另一个引号字符中包装字段,ESCAPE如果引号字符前面有斜杠.唉,在加载之前都要求文件采用特定格式.

看到: