如何读取PIG UDF中的静态文件

时间:2011-02-24 15:25:31

标签: hadoop apache-pig

我是PIG和Hadoop的新手。我编写了一个PIG UDF,它在String上运行并返回一个字符串。我实际上使用了一个已经存在的jar中的类,它包含了udf中的业务逻辑。类构造函数将2个文件名作为输入,用于构建用于处理输入的一些字典。如何让它在mapreduce模式下工作我尝试在猪本地模式下传递文件名它工作正常。但我不知道如何使它在mapreduce模式下工作?分布式缓存可以解决问题吗?

这是我的代码

REGISTER tokenParser.jar

REGISTER sampleudf.jar;


DEFINE TOKENPARSER com.yahoo.sample.ParseToken('conf/input1.txt','conf/input2.xml');

A = LOAD './inputHOP.txt' USING PigStorage() AS (tok:chararray);
B = FOREACH A GENERATE TOKENPARSER(tok);
STORE B into 'newTokout' USING PigStorage();

据我所知,tokenParser.jar必须使用某种BufferedInputReader。是否可以在不更改tokenParser.jar的情况下使其工作

1 个答案:

答案 0 :(得分:1)

是的,就像使用similar question distributed cache一样,这是解决此问题的好方法。