2016-03-14 53 views
2

我在尝试加载简单CSV时遇到了Redshift中的1202 Extra column(s) found错误。我已经确认文件中没有额外的列或任何未转义的字符,这会导致COPY命令失败,并显示此错误。Redshift错误1202使用COPY命令发现“额外的列”

这里的创建目标表:

create table test_table(
    name varchar(500), 
    email varchar(500), 
    developer_id integer, 
    developer_name varchar(500), 
    country varchar(20), 
    devdatabase varchar(50)); 

我用一个简单的CSV没有头,只有3行数据:

john smith,[email protected],123,johndev,US,comet 
jane smith,[email protected],124,janedev,GB,titan 
jack smith,[email protected],125,jackdev,US,comet 

不幸的是我COPY命令失败,err_1202 "Extra column(s) found"

COPY test_table 
FROM 's3://mybucket/test/test_contacts.csv'  
WITH credentials AS 'aws_access_key_id=<awskey>;aws_secret_access_key=<mykey>' 
CSV; 

该文件没有其他列。

+0

我按照你的步骤成功地将数据导入到Redshift表中。我已经清除了您的问题(已删除模式名称,已关闭的凭据报价,提到的存储桶名称),因此您可能要确认它仍然符合您的情况。我将数据作为文本文件保存在S3存储桶中(未压缩)。 –

+0

有时名称包含逗号(,)您可能需要检查数据并引用它们 – khc

+0

您是否检查stl_error表或者是否正在查看SQL客户端的错误消息? SELECT err_reason,raw_line,err_code,查询,会话,TBL FROM stl_load_errors 其中,文件名,如 'S3:// mybucket /测试/ test_contacts%' ORDER BY查询DESC,开始时间DESC – Faiz

回答

0

我在加载数据时也面临同样的问题。我整流使用以下代码: 复制yourtablename 从 '您的S3位置' 凭证 '您的AWS凭证' 定界符 '' IGNOREHEADER 1个 removequotes emptyasnull blanksasnull 最大误差5;