/ / combina i file avro in uno - hadoop, apache-pig, avro

combinare i file avro in un unico, hadoop, apache-pig, avro

Voglio combinare piccoli file avro in un unico file avro, mantenendo lo stesso schema, usando il maiale.

Ho provato a fare questo:

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 ();

ma non è riuscito con il seguente errore:

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.]

Come faccio a combinare piccoli file avro in un unico file usando maiale?

risposte:

1 per risposta № 1

In primo luogo, AvroStorage fa parte del porcellino salvadanaio, quindi è necessario registrare anche piggybank.jar.

REGISTER piggybank.jar

In secondo luogo, l'utilizzo di AvroStorage richiede librerie aggiuntive, quindi è necessario registrare json-simple-1.1.1.jar.

REGISTER json-simple-1.1.1.jar

In terzo luogo, se si desidera utilizzare una versione più recente di Avro, è necessario avro-mapred.jar

Ho il seguente codice nei miei script 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;