Simmant
Simmant

Reputation: 1513

how to solve "Error during parsing. could not instantiate" in pig?

Hello every one i am new in Pig i am trying following pig script :

then it shows following error : ERROR 1000: Error during parsing. could not instantiate 'UPER' with arguments 'null' Details at logfile: /home/training/pig_1371303109105.log

my Pig script:

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

I follow this tutorial .

My java class is :

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


          }}
}

Upvotes: 1

Views: 3001

Answers (1)

zsxwing
zsxwing

Reputation: 20816

I found the following information from your error log:

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)

I guess that org.apache.commons.logging.Log is not in your environment. How did you run your Pig script? This class should have been in the Pig envrionment. org.apache.commons.logging.Log is in commons-logging-*.*.*.jar

Upvotes: 2

Related Questions