/ / combinez des fichiers avro en un seul - hadoop, apache-pig, avro

combinez des fichiers avro en un seul - hadoop, apache-pig, avro

Je veux combiner de petits fichiers AVRO dans un fichier AVRO, en conservant le même schéma, en utilisant porc.

J'ai essayé de faire ceci:

REGISTER avro-1.7.2.jar

a = load "$SOURCE" using org.apache.pig.piggybank.storage.avro.AvroStorage ();
store a into "$TARGET" using org.apache.pig.piggybank.storage.avro.AvroStorage ();

mais a échoué avec l'erreur suivante:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve org.apache.pig.piggybank.storage.avro.AvroStorage using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.]

Comment combiner de petits fichiers avro en un seul fichier avec pig?

Réponses:

1 pour la réponse № 1

Premièrement, AvroStorage fait partie de piggybank, vous devez donc également enregistrer piggybank.jar.

REGISTER piggybank.jar

Deuxièmement, en utilisant AvroStorage, demandez des bibliothèques supplémentaires et vous devez donc enregistrer json-simple-1.1.1.jar.

REGISTER json-simple-1.1.1.jar

Troisièmement, si vous voulez utiliser une version plus récente d’Avro, vous avez besoin d’avro-mapred.jar.

J'ai le code suivant dans mes scripts Pig:

REGISTER lib/piggybank-0.13.0.jar;
REGISTER lib/avro-1.7.7.jar;
REGISTER lib/avro-mapred-1.7.7.jar;
REGISTER lib/json-simple-1.1.1.jar;