1

大家好,我是 Pig 的新手,我正在尝试遵循 pig 脚本:

然后它显示以下错误:ERROR 1000:解析期间出错。无法使用参数“null”实例化“UPER”日志文件中的详细信息:/home/training/pig_1371303109105.log

我的猪脚本:

register udf.jar; 
A = LOAD 'data1.txt' USING PigStorage(',') AS (name:chararray, class:chararray, age:int);
B = foreach A generate UPER(class);

我遵循教程。

我的java类是:

enter code here


import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import java.io.*;

public class UPER extends EvalFunc<String>{

    @Override
    public String exec(Tuple input) throws IOException {
        // TODO Auto-generated method stub
        if(input == null ||input.size() ==0)
         return null;
         try
         {
            String str=(String)input.get(0); 
            return str.toUpperCase(); 
         }
          catch(Exception e){
              throw new IOException("Caught exception processing input row ", e);


          }}
}
4

1 回答 1

2

我从您的错误日志中找到了以下信息:

Caused by: java.lang.Error: Unresolved compilation problem:
        The type org.apache.commons.logging.Log cannot be resolved. It is indirectly referenced from required .class files

        at UPER.<init>(UPER.java:1)

我想这org.apache.commons.logging.Log不在你的环境中。你是如何运行你的 Pig 脚本的?这个类应该在 Pig 环境中。org.apache.commons.logging.Logcommons-logging-*.*.*.jar

于 2013-06-17T06:36:21.290 回答