首页 > 解决方案 > 引用 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://';

预期成绩:

实际结果:

标签: amazon-redshiftamazon-redshift-spectrum

解决方案


推荐阅读