【发布时间】:2016-06-30 03:23:07
【问题描述】:
尝试加载简单的 CSV 时,我在 Redshift 中收到 1202 Extra column(s) found 错误。我已确保文件中没有其他列或任何未转义的字符会导致 COPY 命令因此错误而失败。
这是创建的目标表:
create table test_table(
name varchar(500),
email varchar(500),
developer_id integer,
developer_name varchar(500),
country varchar(20),
devdatabase varchar(50));
我使用的是没有标题且只有 3 行数据的简单 CSV:
john smith,john@gmail.com,123,johndev,US,comet
jane smith,jane@gmail.com,124,janedev,GB,titan
jack smith,jack@gmail.com,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;
文件中没有其他列。
【问题讨论】:
-
我按照您的步骤成功将数据导入到 Redshift 表中。我已经清理了您的问题(删除了架构名称、关闭的凭据引用、提到的存储桶名称),因此您可能需要确认它仍然符合您的情况。我将数据作为文本文件保存在 S3 存储桶中(未压缩)。
-
有时名称中包含逗号 (,),您可能需要遍历数据并引用它们
-
您检查了 stl_error 表还是查看了来自 SQL 客户端的错误消息? SELECT err_reason,raw_line,err_code,query,session,tbl FROM stl_load_errors WHERE filename like 's3://mybucket/test/test_contacts%' ORDER BY query DESC, starttime DESC
-
将分隔符更改为 ~ 如果不是,请尝试在导入环境时检查表架构是否正确。
标签: csv amazon-web-services amazon-s3 amazon-redshift