2

我是 PIG 和 Hadoop 的新手。我编写了一个 PIG UDF,它对 String 进行操作并返回一个字符串。我实际上使用了一个已经存在的 jar 中的类,其中包含 udf 中的业务逻辑。类构造函数将 2 个文件名作为输入,用于构建一些用于处理输入的字典。如何让它在 mapreduce 模式下工作我尝试在 pig 本地模式下传递文件名它工作正常。但我不知道如何让它在 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 的情况下使其工作

4

1 回答 1

1

是的,就像在这个类似的问题中一样,使用分布式缓存是解决这个问题的好方法。

于 2011-02-25T21:04:09.550 回答