我正在尝试从其中包含引号转义引号的 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:等等
实际结果:
- 字段一:
null
- 字段 b:更多文本
- 字段 c:更多,文本
- 字段 d:等等