【问题标题】:Invalid digit, Value '\\', Pos 0, Type: Long error in Amazon redshift copy command无效数字,值 '\\',位置 0,类型:Amazon redshift 复制命令中的长错误
【发布时间】:2017-01-10 11:09:16
【问题描述】:

我正在尝试从 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 表后,它显示“无效数字,值 '\',位置 0,类型:长”错误。

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

【问题讨论】:

  • 具有 long as 数据类型的字段正在获取值 \\。您可以从stl_load_errors 表中找到导致错误的确切数据。检查列 raw_lineraw_field_value

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 2020-02-20
    相关资源
    最近更新 更多