Redshift在文本字段中使用逗号加载CSV

时间:2017-11-14 16:00:36

标签: csv amazon-redshift

我一直在尝试加载包含以下行的csv文件:

91451960_NE,-1,171717198,50075943,"MARTIN LUTHER KING, JR WAY",1,NE

请注意名称中的逗号。我已经尝试了所有REMOVEQUOTES,DELIMITER','等的排列......但它们都没有用。

我的名字中间有其他带引号的行,所以ESCAPE选项也必须在那里。

根据其他帖子, DELIMITER ',' ESCAPE REMOVEQUOTES IGNOREHEADER 1; 应该工作,但不是。 Redshift给出了“未找到分隔符”错误。

ESCAPE是否会导致问题,我是否必须转义逗号?

1 个答案:

答案 0 :(得分:2)

我尝试使用CSV作为数据格式参数加载您的数据,这对我有用。请记住,CSV不能与FIXEDWIDTH,REMOVEQUOTES或ESCAPE一起使用。

create TEMP table awscptest (a varchar(40),b int,c bigint,d bigint,e varchar(40),f int,g varchar(10));

copy awscptest from 's3://sds-dev-db-replica/test.txt'
iam_role 'arn:aws:iam::<accounID>:<IAM_role>'
delimiter as ',' EMPTYASNULL CSV NULL AS '\0';

参考文献:http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html http://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#load-from-csv