Java 如何在pig文件中使用.jar

Java 如何在pig文件中使用.jar,java,hadoop,mapreduce,apache-pig,mapr,Java,Hadoop,Mapreduce,Apache Pig,Mapr,我有两个输入文件smt.txt和smo.txt。jar文件读取文本文件,并根据java文件中描述的某些规则分割数据。pig文件使用mapreduce将这些数据放入输出文件中 register 'maprfs:///user/username/fl.jar'; DEFINE FixedLoader fl(); mt = load 'maprfs:///user/username/smt.txt' using FixedLoader('-30','30-33',...........) AS (.

我有两个输入文件smt.txt和smo.txt。jar文件读取文本文件,并根据java文件中描述的某些规则分割数据。pig文件使用mapreduce将这些数据放入输出文件中

register 'maprfs:///user/username/fl.jar';
DEFINE FixedLoader fl();

mt = load 'maprfs:///user/username/smt.txt' using FixedLoader('-30','30-33',...........) AS (.........);

mo = load 'maprfs:///user/username/smo.txt*' using FixedLoader('-30','30-33',.....) AS (......);

store mt into 'maprfs:///user/username/mt_out' using JsonStorage();
store mo into 'maprfs:///user/username/mo_out' using JsonStorage();
下面是java代码的一部分。(我认为方法的内容不是必需的):

当我使用命令“pig-x mapreduce sample.pig”在终端中运行这个pig程序时,我给出了一条错误消息:

错误org.apache.pig.tools.grunt.grunt-错误1070:无法使用导入解析com.mapr.util.FixedLoader:[,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]


如何将这些导入到我的项目中,或者是否有运行此程序的建议/解决方案?

您需要使用其完整包名定义
FixedLoader

register 'maprfs:///user/username/fl.jar';
DEFINE FixedLoader com.mapr.util.FixedLoader();
...

也要注册自定义UDF中使用的所有第三方依赖项jar。

谢谢你的建议,但我决定用pig脚本完成所有工作,所以我不再需要jar文件。然而,我尝试使用相同的代码给出完整的包名,但我认为我的计算机中仍然缺少一些第三方依赖项。
register 'maprfs:///user/username/fl.jar';
DEFINE FixedLoader com.mapr.util.FixedLoader();
...