1

我正在尝试在 Java 中构建我的第一个 Pig UDF,并且在使用 Eclipse 构建时无法调用该函数我的代码如下所示:

REGISTER /home/user2/deb/demo.jar;

注册 /home/user2/deb/deb/avro-1.4.0.jar 注册 /home/user2/deb/deb/json-simple-1.1.jar 注册 /home/user2/deb/deb/piggybank.jar 注册 /home /user2/deb/jackson-core-asl-1.5.5.jar 注册 /home/user2/deb//jackson-mapper-asl-1.5.5.jar

avro = LOAD '/user/user2/deb/part-r-00000.avro' USING AvroStorage('schema_check') AS (accntNo: chararray);

C = FOREACH avro GENERATE masking.AccountMask(accntNo); 转储 C;

ERROR 1070: Could not resolve AvroStorage using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.]

java.lang.RuntimeException: Cannot instantiate:AvroStorage
at org.apache.pig.impl.PigContext.instantiateFuncFromSpec(PigContext.java:459)
4

2 回答 2

0

尝试使用 AvroStorage 的完全限定名称:

avro = LOAD '/user/user2/deb/part-r-00000.avro' 
       USING org.apache.pig.piggybank.storage.avro.AvroStorage('schema_check') 
       AS (accntNo: chararray);
于 2014-05-23T15:49:28.077 回答
0

我认为您需要包含 avro 运行时 jar:avro-1.5.3.jar。您运行的 avro 版本可能与 1.5.3 不同,因此请检查以确保在其中输入了正确的版本号。

注册 /some/path/avro-1.5.3.jar

于 2012-09-07T12:57:49.240 回答