/ / об'єднати файли avro в один - hadoop, apache-pig, avro

об'єднати avro файли в один - хадооп, апаш-свиня, avro

Я хочу об'єднати невеликі файли avro в один файл avro, зберігаючи ту ж схему, використовуючи pig.

Я спробував це зробити:

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

але не вдалося з наступною помилкою:

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

Як об'єднати невеликі файли avro в один файл за допомогою pig?

Відповіді:

1 для відповіді № 1

По-перше, AvroStorage є частиною на скарбничку, тому потрібно також зареєструвати piggybank.jar.

REGISTER piggybank.jar

По-друге, за допомогою запиту AvroStorage додаткові бібліотеки, так що вам потрібно зареєструвати json-simple-1.1.1.jar.

REGISTER json-simple-1.1.1.jar

По-третє, якщо ви хочете використовувати більш нову версію Avro, вам потрібно avro-mapred.jar

У моїх скриптах 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;