无效的数字,值' \\',Pos 0,类型:Amazon redshift copy命令中的长错误

时间:2017-01-10 11:09:16

标签: amazon-web-services amazon-s3 amazon-redshift

我尝试从Amazon redshift表中卸载数据,然后使用以下命令将数据从s3文件复制到redshift。

unload ('select * from abx.xuz where src =\'vpc\'') to 's3://load/2017/' credentials 'aws_access_key_id=******;aws_secret_access_key=*****' allowoverwrite;

copy abc.abxy from 's3://sumo-processed/2017/' 
credentials 'aws_access_key_id=XXXX;aws_secret_access_key=YY' NULL AS '\\0' TRUNCATECOLUMNS FILLRECORD  maxerror as 255;

但它无法加载所有记录。检查stl_load_errors表后,它显示"无效数字,值' \',Pos 0,Type:Long"错误。

enter image description here

如何解决此错误?所以我可以加载所有录音而不跳过?

1 个答案:

答案 0 :(得分:0)

我遇到类似的错误“无效数字,值'。',位置2,类型:整数”,原因是pandas.io.sql.read_sql将所有“ INT NULL”列转换为“ FLOAT”;所以我在数据框中有10.0s而不是10s。然后,我将数据帧转储到S3,然后使用COPY将其从S3导入到REDSHIFT中,由于COPY无法将10.0导入到REDSHIFT的INT4中而收到该错误。

修复:使用“ DECIMAL(10,0)”替换目标REDSHIFT表中的所有“ INT NULL”字段;之后,COPY就像一种魅力。