2014-02-18 48 views
15

我試圖加載一些文本文件到Redshift。它們是製表符分隔的,除了最後一行的值之外。這導致分隔符未找到錯誤。我只能看到在COPY語句中設置字段分隔符的方法,而不是設置行分隔符的方法。任何不涉及處理所有文件以在每行末尾添加選項卡的想法?Redshift COPY命令分隔符未找到

感謝

回答

31

我不認爲這個問題是與線年底失蹤<tab>。你確定所有行都有正確數量的字段嗎?

運行查詢:

select le.starttime, d.query, d.line_number, d.colname, d.value, 
le.raw_line, le.err_reason  
from stl_loaderror_detail d, stl_load_errors le 
where d.query = le.query 
order by le.starttime desc 
limit 100 

得到完整的錯誤報告。它將顯示錯誤的文件名,不正確的行號和錯誤的詳細信息。

這將有助於找出問題所在。

+0

謝謝你救了我這麼多時間 – Vor

+0

是的,我也是。感謝您的診斷查詢.. v很好。 –

22

如果您的行的列數少於預期值,您可以獲取分隔符未找到錯誤。如果最後一列爲空,某些CSV生成器可能會在最後輸出單引號。

要解決此問題,您可以在Redshift複製選項上使用FILLRECORD。