This usually hapens when you aren't registering what you think you are
registering.
try `jar tf /home/huyong/test/myudfs.jar | grep UPPER` and see if you
get anything.

D

2011/6/18 勇胡 <yongyong...@gmail.com>:
> Hi,
>
> package myudfs;
> import java.io.IOException;
> import org.apache.pig.EvalFunc;
> import org.apache.pig.data.Tuple;
> import org.apache.pig.impl.util.*;
>
> public class UPPER extends EvalFunc<String>
> {
>    public String exec(Tuple input) throws IOException {
>        if (input == null || input.size() == 0)
>            return null;
>        try{
>            String str = (String)input.get(0);
>            return str.toUpperCase();
>        }catch(Exception e){
>            throw new IOException(e);
>        }
>    }
> }
>
> This is as same as the example from the Pig website. By the way, I also
> added the PIG_CLASS. But it still didn't work.
>
> Yong
>
> 2011/6/18 Jonathan Coveney <jcove...@gmail.com>
>
>> Can you paste the content of the UDF?
>>
>> 2011/6/18 勇胡 <yongyong...@gmail.com>
>>
>> > Hello,
>> >
>> > I just tried the example from the pig udf manual step by step. But I got
>> > the
>> > error information. Can anyone tell me how to solve it?
>> >
>> > grunt> REGISTER /home/huyong/test/myudfs.jar;
>> > grunt> A = LOAD '/home/huyong/test/student.txt' as (name:chararray);
>> > grunt> B = FOREACH A GENERATE myudfs.UPPER(name);
>> > 2011-06-18 11:15:38,892 [main] ERROR org.apache.pig.tools.grunt.Grunt -
>> > ERROR 1070: Could not resolve myudfs.UPPER using imports: [,
>> > org.apache.pig.builtin., org.apache.pig.impl.builtin.]
>> > Details at logfile: /home/huyong/test/pig_1308388238352.log
>> >
>> > I have already registered the udf, why pig tries to search from the
>> builtin
>> > path.
>> >
>> > Thanks for your help!
>> >
>> > Yong Hu
>> >
>>
>

Reply via email to