我一直在尝试加载包含以下行的csv文件:
91451960_NE,-1,171717198,50075943,"MARTIN LUTHER KING, JR WAY",1,NE
请注意名称中的逗号。我已经尝试了所有REMOVEQUOTES,DELIMITER','等的排列......但它们都没有用。
我的名字中间有其他带引号的行,所以ESCAPE选项也必须在那里。
根据其他帖子,
DELIMITER ',' ESCAPE REMOVEQUOTES IGNOREHEADER 1;
应该工作,但不是。 Redshift给出了“未找到分隔符”错误。
ESCAPE是否会导致问题,我是否必须转义逗号?
答案 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