【问题标题】:InternalError_: Spectrum Scan Error. S3 to Redshift copy commandInternalError_:频谱扫描错误。 S3 到 Redshift 复制命令
【发布时间】:2020-07-10 06:11:53
【问题描述】:

我正在尝试使用 COPY 命令将一些数据从 S3 存储桶复制到红移表。文件的格式是 PARQUET。当我运行执行 COPY 命令查询时,我得到 InternalError_: Spectrum Scan Error。

这是我第一次尝试从 parquet 文件中复制。

如果有解决方案,请帮助我。我在python中使用boto3。

【问题讨论】:

  • 错误的“context”属性中应该有错误的详细信息。

标签: python amazon-s3 amazon-redshift parquet


【解决方案1】:

此错误通常表明文件和红移表中的数据存在兼容性问题。您可以在表“SVL_S3LOG”中获得有关错误的更多见解。就我而言,这是因为文件包含一些无效的 utf8 字符。

【讨论】:

    【解决方案2】:

    这通常由于以下原因发生:

    1. 如果表和文件之间的列数不匹配。
    2. 如果您的文件架构的列类型与您的目标表列类型不兼容。

    尝试进入错误日志。您可能会发现部分登录云手表。从您上传的屏幕截图中,您还可以找到您运行的查询号。

    进入 aws redshift 查询编辑器并在查询下方运行以获取完整日志:

    select message 
    from svl_s3log 
    where query = '<<your query number>>'
    order by query,segment,slice; 
    

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      频谱扫描错误通常是由两件事引起的。

      a) 源和目标之间的列不匹配 例如如果您将数据从 S3 复制到 redshift,那么 parquet 的列与 redshift 表中的列不符合顺序。

      b) 源和目标的数据类型匹配 例如S3 到 redshift 副本,在 parquet 中,col1 的数据类型为 Integer,而在 redshift 中,相同的 col1 的数据类型为 float。

      使用其数据类型验证架构 匹配源和目标的序列和数据类型将解决频谱扫描错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        相关资源
        最近更新 更多