将avro文件合并为一个

时间:2014-09-18 16:16:38

标签: hadoop apache-pig 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.]

如何使用pig将小型avro文件合并到一个文件中?

1 个答案:

答案 0 :(得分:1)

首先,AvroStorage是piggybank的一部分,所以你还需要注册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;