Avro 形式で保存されたデータを読み取る EMR で豚のスクリプトを実行しています。ローカルで動作していましたが、スクリプトの他の部分を EMR で動作させるために、使用していた piggybank.jar を 0.10.0 ではなく 0.9.2 に戻す必要がありました。その変更を行った後、AvroStorage は暗黙のうちにデータの読み取りに失敗し、ゼロ レコードを返すだけです。ログなどには何も言及されていません。スクリプトは次のとおりです。
REGISTER ../../../lib/avro-1.7.0.jar
REGISTER ../../../lib/json-simple-1.1.1.jar
REGISTER ../../../lib/jackson-core-asl-1.5.2.jar
REGISTER ../../../lib/jackson-mapper-asl-1.5.2.jar
REGISTER ../../../lib/piggybank.jar
a = LOAD '/data/' USING org.apache.pig.piggybank.storage.avro.AvroStorage();
DUMP a;
また、piggybank.jar がバージョン 0.10.0 の場合、動作します。バージョン 0.9.2 の場合はありません。他のライブラリの別のバージョンを使用する必要がありますか? avro-1.5.3.jar で試してみましたが、これもうまくいきませんでした。
別の注意:そうするとdescribe a;
、スキーマが正しく出力されます。