|
|
-
why the udf can not work
勇胡 2011-06-18, 09:22
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
-
Re: why the udf can not work
Jonathan Coveney 2011-06-18, 13:46
Can you paste the content of the UDF?
2011/6/18 勇胡 <[EMAIL PROTECTED]>
> 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 >
-
Re: why the udf can not work
勇胡 2011-06-18, 13:51
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 <[EMAIL PROTECTED]>
> Can you paste the content of the UDF? > > 2011/6/18 勇胡 <[EMAIL PROTECTED]> > > > 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 > > >
-
Re: why the udf can not work
Dmitriy Ryaboy 2011-06-18, 14:29
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 勇胡 <[EMAIL PROTECTED]>: > 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 <[EMAIL PROTECTED]> > >> Can you paste the content of the UDF? >> >> 2011/6/18 勇胡 <[EMAIL PROTECTED]> >> >> > 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 >> > >> >
-
Re: why the udf can not work
勇胡 2011-06-18, 19:33
I tried your command and then it shows me as following: /home/huyong/test/UPPER.class /home/huyong/test/UPPER.java
Yong 在 2011年6月18日 下午4:29,Dmitriy Ryaboy <[EMAIL PROTECTED]>写道:
> 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 勇胡 <[EMAIL PROTECTED]>: > > 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 <[EMAIL PROTECTED]> > > > >> Can you paste the content of the UDF? > >> > >> 2011/6/18 勇胡 <[EMAIL PROTECTED]> > >> > >> > 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 > >> > > >> > > >
-
Re: why the udf can not work
Dexin Wang 2011-06-19, 02:10
You need to have your class file in this path
/home/huyong/test/myudfs/UPPER.class
since it's in myudfs directory. On Jun 18, 2011, at 12:33 PM, 锟铰猴拷 <[EMAIL PROTECTED]> wrote:
> I tried your command and then it shows me as following: > /home/huyong/test/UPPER.class > /home/huyong/test/UPPER.java > > Yong > 锟斤拷 2011锟斤拷6锟斤拷18锟斤拷 锟斤拷锟斤拷4:29锟斤拷Dmitriy Ryaboy <[EMAIL PROTECTED]>写锟斤拷锟斤拷 > >> 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 锟铰猴拷 <[EMAIL PROTECTED]>: >>> 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 <[EMAIL PROTECTED]> >>> >>>> Can you paste the content of the UDF? >>>> >>>> 2011/6/18 锟铰猴拷 <[EMAIL PROTECTED]> >>>> >>>>> 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 >>>>> >>>> >>> >>
-
Re: why the udf can not work
勇胡 2011-06-19, 08:35
In this path, it has already contained UPPER.class and UPPER.java. And the myudfs.jar is also in the path. But it did not work. By the way, my Pig version is 0.8.1. Is there something, for example, classpath I have to set up in the Pig configuration?
Yong
在 2011年6月19日 上午4:10,Dexin Wang <[EMAIL PROTECTED]>写道:
> You need to have your class file in this path > > /home/huyong/test/myudfs/UPPER.class > > since it's in myudfs directory. > > > On Jun 18, 2011, at 12:33 PM, 勇胡 <[EMAIL PROTECTED]> wrote: > > > I tried your command and then it shows me as following: > > /home/huyong/test/UPPER.class > > /home/huyong/test/UPPER.java > > > > Yong > > 在 2011年6月18日 下午4:29,Dmitriy Ryaboy <[EMAIL PROTECTED]>写道: > > > >> 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 勇胡 <[EMAIL PROTECTED]>: > >>> 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 <[EMAIL PROTECTED]> > >>> > >>>> Can you paste the content of the UDF? > >>>> > >>>> 2011/6/18 勇胡 <[EMAIL PROTECTED]> > >>>> > >>>>> 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 > >>>>> > >>>> > >>> > >> >
-
Re: why the udf can not work
Dexin Wang 2011-06-19, 17:24
Looks like you need to learn a bit about how java package works. The path for the class file needs to be
/home/huyong/test/*myudfs*/UPPER.class
Or remove the first line in your UDF code "package myudfs;" and redo everything you did, it will work.
2011/6/19 勇胡 <[EMAIL PROTECTED]>
> In this path, it has already contained UPPER.class and UPPER.java. And the > myudfs.jar is also in the path. But it did not work. By the way, my Pig > version is 0.8.1. Is there something, for example, classpath I have to set > up in the Pig configuration? > > Yong > > 在 2011年6月19日 上午4:10,Dexin Wang <[EMAIL PROTECTED]>写道: > > > You need to have your class file in this path > > > > /home/huyong/test/myudfs/UPPER.class > > > > since it's in myudfs directory. > > > > > > On Jun 18, 2011, at 12:33 PM, 勇胡 <[EMAIL PROTECTED]> wrote: > > > > > I tried your command and then it shows me as following: > > > /home/huyong/test/UPPER.class > > > /home/huyong/test/UPPER.java > > > > > > Yong > > > 在 2011年6月18日 下午4:29,Dmitriy Ryaboy <[EMAIL PROTECTED]>写道: > > > > > >> 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 勇胡 <[EMAIL PROTECTED]>: > > >>> 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 <[EMAIL PROTECTED]> > > >>> > > >>>> Can you paste the content of the UDF? > > >>>> > > >>>> 2011/6/18 勇胡 <[EMAIL PROTECTED]> > > >>>> > > >>>>> 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 > > >>>>> > > >>>> > > >>> > > >> > > >
-
Re: why the udf can not work
Dmitriy Ryaboy 2011-06-19, 21:41
It's even worse than just the missing package name.
When you create a jar, its root is supposed to be the root of your package tree.
So a class "com.foo.Bar" has to be in "com/foo/Bar.class" when you run jar tf on the jarfile. If it's in "home/me/src/com/foo/Bar.class" or just in "Bar.class" or in "something/else/Bar.class" java won't find it.
D
2011/6/19 Dexin Wang <[EMAIL PROTECTED]>: > Looks like you need to learn a bit about how java package works. The path > for the class file needs to be > > /home/huyong/test/*myudfs*/UPPER.class > > Or remove the first line in your UDF code "package myudfs;" and redo > everything you did, it will work. > > 2011/6/19 勇胡 <[EMAIL PROTECTED]> > >> In this path, it has already contained UPPER.class and UPPER.java. And the >> myudfs.jar is also in the path. But it did not work. By the way, my Pig >> version is 0.8.1. Is there something, for example, classpath I have to set >> up in the Pig configuration? >> >> Yong >> >> 在 2011年6月19日 上午4:10,Dexin Wang <[EMAIL PROTECTED]>写道: >> >> > You need to have your class file in this path >> > >> > /home/huyong/test/myudfs/UPPER.class >> > >> > since it's in myudfs directory. >> > >> > >> > On Jun 18, 2011, at 12:33 PM, 勇胡 <[EMAIL PROTECTED]> wrote: >> > >> > > I tried your command and then it shows me as following: >> > > /home/huyong/test/UPPER.class >> > > /home/huyong/test/UPPER.java >> > > >> > > Yong >> > > 在 2011年6月18日 下午4:29,Dmitriy Ryaboy <[EMAIL PROTECTED]>写道: >> > > >> > >> 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 勇胡 <[EMAIL PROTECTED]>: >> > >>> 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 <[EMAIL PROTECTED]> >> > >>> >> > >>>> Can you paste the content of the UDF? >> > >>>> >> > >>>> 2011/6/18 勇胡 <[EMAIL PROTECTED]> >> > >>>> >> > >>>>> 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 >> > >>>>> >> > >>>> >> > >>> >> > >> >> > >> >
-
Re: why the udf can not work
勇胡 2011-06-20, 07:16
Thanks for your help. I didn't even notice that. Now it works.
yong
2011/6/19 Dmitriy Ryaboy <[EMAIL PROTECTED]>
> It's even worse than just the missing package name. > > When you create a jar, its root is supposed to be the root of your package > tree. > > So a class "com.foo.Bar" has to be in "com/foo/Bar.class" when you run > jar tf on the jarfile. If it's in "home/me/src/com/foo/Bar.class" or > just in "Bar.class" or in "something/else/Bar.class" java won't find > it. > > D > > 2011/6/19 Dexin Wang <[EMAIL PROTECTED]>: > > Looks like you need to learn a bit about how java package works. The path > > for the class file needs to be > > > > /home/huyong/test/*myudfs*/UPPER.class > > > > Or remove the first line in your UDF code "package myudfs;" and redo > > everything you did, it will work. > > > > 2011/6/19 勇胡 <[EMAIL PROTECTED]> > > > >> In this path, it has already contained UPPER.class and UPPER.java. And > the > >> myudfs.jar is also in the path. But it did not work. By the way, my Pig > >> version is 0.8.1. Is there something, for example, classpath I have to > set > >> up in the Pig configuration? > >> > >> Yong > >> > >> 在 2011年6月19日 上午4:10,Dexin Wang <[EMAIL PROTECTED]>写道: > >> > >> > You need to have your class file in this path > >> > > >> > /home/huyong/test/myudfs/UPPER.class > >> > > >> > since it's in myudfs directory. > >> > > >> > > >> > On Jun 18, 2011, at 12:33 PM, 勇胡 <[EMAIL PROTECTED]> wrote: > >> > > >> > > I tried your command and then it shows me as following: > >> > > /home/huyong/test/UPPER.class > >> > > /home/huyong/test/UPPER.java > >> > > > >> > > Yong > >> > > 在 2011年6月18日 下午4:29,Dmitriy Ryaboy <[EMAIL PROTECTED]>写道: > >> > > > >> > >> 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 勇胡 <[EMAIL PROTECTED]>: > >> > >>> 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 <[EMAIL PROTECTED]> > >> > >>> > >> > >>>> Can you paste the content of the UDF? > >> > >>>> > >> > >>>> 2011/6/18 勇胡 <[EMAIL PROTECTED]> > >> > >>>> > >> > >>>>> 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. > >
|
|