2016-05-23 8 views
1

HDFSとS3に保存されたAvroファイル(BZIP2を使用して圧縮されたファイル)をAmazon Redshiftにロードしたい。コピーコマンドでエラーが発生します。Amazon redshift:BZIP2を使用して圧縮されたAvroファイルを読み込む

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

Redshiftは圧縮されたavroファイルをサポートしています。

gzip、lzop、またはbzip2を使用して圧縮されたデータファイルをロードするには、対応するオプションGZIP、LZOP、またはBZIP2をcopyコマンドに含めます。

また、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; 
+0

あなただけの組み込みのスキーマファイルのを使用している場合は、JSONのパスを指定する必要はありません - ちょうど「アブロ 『自動』としてフォーマット」を行うことができ、http://docs.awsを参照してください。 amazon.com/redshift/latest/dg/r_COPY_command_examples.html#copy-from-avro-examples-using-auto – subelsky

関連する問題