【发布时间】:2020-08-19 22:55:53
【问题描述】:
我正在尝试将 S3 中的 avro 文件加载到 Redshift 中的表中。 Avro 文件之一的格式不正确。问题是当复制命令尝试加载该文件时,它会引发异常并且不会为正确的文件运行复制。如何跳过格式错误的文件和 c opy 正确的文件?这是我加载文件的代码:
COPY tmp.table
FROM 's3://{BUCKET}/{PREFIX}'
IAM_ROLE '{ROLE}'
FORMAT AVRO 's3://{BUCKET}/{AVRO_PATH}'
我得到的错误是:
code: 8001
context: Cannot init avro reader from s3 file Incorrect Avro container file magic number
query: 19308992
location: avropath_request.cpp:438
process: query0_125_19308992 [pid=23925]
【问题讨论】:
-
在 s3 存储桶前缀组合中是否还有其他以相同前缀开头但不是 avro 的文件?这是使用 Spark 之类的东西而不使用清单文件进行 Redshift Copy 时的常见问题。编辑:重新阅读问题后,我了解您想要做什么,这是不可能的。 Redshift 将尝试处理 s3 路径上的所有文件。
-
感谢@B.Pesevski 回答这个问题。不,我没有任何其他具有相同前缀的文件。我所做的是手动将 avro 文件中的一个字段更改为与预期不同的格式,我得到了这个错误
标签: json exception amazon-s3 amazon-redshift avro