我有存储在HDFS和S3中的Avro文件(使用BZIP2压缩),我想将它们加载到Amazon Redshift中。复制命令给出错误:
error: Invalid AVRO file
code: 8001
context: Cannot init avro reader from s3 file File header contains an unknown codec
Redshift不支持压缩的Avro文件吗?
如果是这种情况,那么将此数据加载到Redshift中的下一个最佳选择是什么(不将其转换回Avro文件而不进行压缩)。
我可以使用sqoop吗?
答案 0 :(得分:0)
Redshift支持压缩的avro文件。
要加载使用gzip,lzop或bzip2压缩的数据文件,请在复制命令中包含相应的选项:GZIP,LZOP或BZIP2。
此外,您需要提及avro格式并提供json路径。下面是我使用的代码,它可以工作。
copy <tablename> from '<s3 path - abc.avro.gz>'
credentials 'aws_access_key_id=<access-key>;aws_secret_access_key=<secret access key>'
format as avro '<json path for avro format>'
gzip;