我是 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 的情况下使其工作