Redshift:在名称列

时间:2017-02-03 07:44:37

标签: amazon-redshift

我尝试使用COPY命令将s3文件(大小约为6GB)从s3导入到redshift:

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;

但是出现了以下错误:

  

执行SQL命令时发生错误:   从&#39; s3://some_location/large_file.csv'复制test_qa.test_pat_temp;   凭证&#39; aws_access _...

     

亚马逊无效的操作:加载到表格&#39; test_pat_temp&#39;失败。检查&#39; stl_load_errors&#39;系统表了解详情。

     

执行时间:42.34s

     

1声明失败。

&#39; stl_load_errors&#39;中错误的原因table is &#34;找到额外的列&#34;

我检查了csv文件,并且在name列的许多单元格中都有逗号(,)。例如姓氏,名字。

如何在redshift中导入csv文件时处理逗号?我用Google搜索了错误并得到了通用答案&#34;处理所需列中的逗号&#34;。谁能给我一些关于如何处理逗号的细节?

1 个答案:

答案 0 :(得分:0)

共有329列,其中一列是FULL_NAME,其值为“Last_name,First_name”。行的值由逗号分隔。所以一行就像:1,2,88 ,,“Last_name,First_name”,公司,,,,堆栈,溢出,,,,等等。

我设法通过简单地添加REMOVEQUOTES选项导入文件:

从's3://some_location/large_file.csv'复制test.test_pat_temp 凭证'aws_access_key_id =; aws_secret_access_key =' EMPTYASNULL BLANKSASNULL REMOVEQUOTES;