在Redshift外部表中引用转义的引号

时间:2019-01-30 17:45:53

标签: amazon-redshift amazon-redshift-spectrum

我正在尝试从Redshift中的csv在Redshift中创建一个外部表,如rfc4180中所述:

  

如果使用双引号将字段括起来,则使用双引号   出现在字段中的内容必须先在另一个字段之前转义   双引号。

     

例如:“ aaa”,“ b”,“ bb”,“ ccc”

我没有收到任何错误,但是决赛桌在我的字符串应有的地方有一个null值。

创建外部表时,有没有办法告诉Redshift理解这种csv格式?

不想要更改csv文件的格式。


csv示例:

"some ""text""",some more text,"more, text",and more

外部表创建示例:

create external table spectrum.spectrum_test_quote(
  a varchar(32),
  b varchar(32),
  c varchar(32),
  d varchar(32)
)
row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
  'separatorChar' = ',',
  'quoteChar' = '\"',
  'escapeChar' = '\\'
)
stored as textfile
location 's3://';

预期结果:

  • 字段a:一些“文字”
  • b栏:更多文本
  • 字段c:更多文字
  • 字段d:以及更多

实际结果:

  • 字段a:null
  • b栏:更多文本
  • 字段c:更多文字
  • 字段d:以及更多

0 个答案:

没有答案