InternalError_:频谱扫描错误。 S3 到 Redshift 复制命令
InternalError_: Spectrum Scan Error. S3 to Redshift copy command
我正在尝试使用 COPY 命令将一些数据从 S3 存储桶复制到 redshift table。文件格式为 PARQUET。当我 运行 执行 COPY 命令查询时,我得到 InternalError_: Spectrum Scan Error。
这是我第一次尝试从 parquet 文件复制。
如果有解决办法请帮帮我。我在 python 中使用 boto3。
此错误通常表示您的文件和 redshift tables 中的数据存在兼容性问题。您可以在 table 'SVL_S3LOG' 中获得有关错误的更多见解。就我而言,这是因为文件中包含一些无效的 utf8 字符。
这通常由于以下原因而发生:
- 如果 table 和文件之间的列数不匹配。
- 如果您的文件架构的列类型与您的目标 table 列类型不兼容。
尝试进入错误日志。您可能会发现部分登录云手表。从您上传的屏幕截图中,您还可以找到您的查询编号 运行。
进入 aws redshift 查询编辑器和 运行 下面的查询以获取完整日志:
select message
from svl_s3log
where query = '<<your query number>>'
order by query,segment,slice;
希望对您有所帮助!
频谱扫描错误通常由两件事引起。
a) 源和目标之间的列不匹配
例如如果您要将数据从 S3 复制到 redshift,则 parquet 的列与 redshift 表中的列顺序不一致。
b) 源和目标的数据类型匹配
例如S3 到 redshift 副本,在 parquet 中,col1 数据类型为 Integer,在 redshift 中,相同的 col1 数据类型为 float。
使用数据类型验证模式
匹配源和目标的序列和数据类型将解决频谱扫描错误。
我正在尝试使用 COPY 命令将一些数据从 S3 存储桶复制到 redshift table。文件格式为 PARQUET。当我 运行 执行 COPY 命令查询时,我得到 InternalError_: Spectrum Scan Error。
这是我第一次尝试从 parquet 文件复制。
如果有解决办法请帮帮我。我在 python 中使用 boto3。
此错误通常表示您的文件和 redshift tables 中的数据存在兼容性问题。您可以在 table 'SVL_S3LOG' 中获得有关错误的更多见解。就我而言,这是因为文件中包含一些无效的 utf8 字符。
这通常由于以下原因而发生:
- 如果 table 和文件之间的列数不匹配。
- 如果您的文件架构的列类型与您的目标 table 列类型不兼容。
尝试进入错误日志。您可能会发现部分登录云手表。从您上传的屏幕截图中,您还可以找到您的查询编号 运行。
进入 aws redshift 查询编辑器和 运行 下面的查询以获取完整日志:
select message
from svl_s3log
where query = '<<your query number>>'
order by query,segment,slice;
希望对您有所帮助!
频谱扫描错误通常由两件事引起。
a) 源和目标之间的列不匹配 例如如果您要将数据从 S3 复制到 redshift,则 parquet 的列与 redshift 表中的列顺序不一致。
b) 源和目标的数据类型匹配 例如S3 到 redshift 副本,在 parquet 中,col1 数据类型为 Integer,在 redshift 中,相同的 col1 数据类型为 float。
使用数据类型验证模式 匹配源和目标的序列和数据类型将解决频谱扫描错误。