2016-03-14 154 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;