2017-02-03 23 views
0

我試圖從S3導入CSV文件(大小〜6GB)用COPY命令紅移:紅移:大尺寸(〜6GB),在名稱列逗號導入CSV文件

copy test.test_pat_temp from 's3://some_location/large_file.csv' 
credentials 'aws_access_key_id=<access_key>;aws_secret_access_key=<Secret_Key>' 
DELIMITER AS ',' 
EMPTYASNULL 
BLANKSASNULL; 

但得到了以下錯誤:

An error occurred when executing the SQL command: copy test_qa.test_pat_temp from 's3://some_location/large_file.csv' credentials 'aws_access_...

Amazon Invalid operation: Load into table 'test_pat_temp' failed. Check 'stl_load_errors' system table for details.;

Execution time: 42.34s

1 statement failed.

原因在「stl_load_errors」表錯誤是「中發現額外的列(S)」。

我檢查了csv文件,它在名稱列的許多單元格中都有逗號(,)。例如姓氏,名字。

如何在導入csv文件時使用紅移處理逗號?我GOOGLE了錯誤,只是得到了通用答案「處理所需列中的逗號」。任何人都可以給我一些關於如何處理逗號的細節?

+0

你能否從CSV文件中發佈出現問題的示例行?他們的名字中是否帶有逗號或其他方式來指出如何將CSV數據分隔到所需的列中? –

+0

有329列,其中一列是FULL_NAME,值爲「Last_name,First_name」。行的值由逗號分隔。 這樣一行就會是這樣的: 1,2,88 ,,「Last_name,First_name」,公司,,,,堆棧,溢出,,,,等等。 – PratikJoshi

+0

我設法通過簡單地添加REMOVEQUOTES選擇要導入的文件:從 'S3://some_location/large_file.csv' 副本test.test_pat_temp 憑據 'aws_access_key_id = ; aws_secret_access_key = ' EMPTYASNULL BLANKSASNULL REMOVEQUOTES; – PratikJoshi

回答

0

有329列,其中一列是FULL_NAME,值爲「Last_name,First_name」。行的值由逗號分隔。所以一行會是這樣的:1,2,88 ,,「Last_name,First_name」,Company ,,,,堆棧,溢出,,,,等等。

我設法通過簡單地添加REMOVEQUOTES選擇要導入的文件:從 'S3://some_location/large_file.csv'

副本test.test_pat_temp 憑據 'aws_access_key_id =; aws_secret_access_key =' EMPTYASNULL BLANKSASNULL REMOVEQUOTES;