Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig 将JAR作为UDF运行Pig将返回错误101_Apache Pig_Oozie - Fatal编程技术网

Apache pig 将JAR作为UDF运行Pig将返回错误101

Apache pig 将JAR作为UDF运行Pig将返回错误101,apache-pig,oozie,Apache Pig,Oozie,我对Pig和Oozie还不熟悉,所以这可能是一个初学者的问题,但我到处都在寻找答案,运气不好。。。 我试图在Pig上运行一个UDF,UDF是一个带有重载eval方法的JAR(取自): 在本地(pig-f script.pig.txt)上运行此命令时,我收到了所需的结果,但在Oozie(Oozie job-Oozie)上运行此命令时http://localhost:11000/oozie -config job.properties-run)我收到以下错误: 错误101:本地文件'myu

我对Pig和Oozie还不熟悉,所以这可能是一个初学者的问题,但我到处都在寻找答案,运气不好。。。 我试图在Pig上运行一个UDF,UDF是一个带有重载eval方法的JAR(取自):

在本地(pig-f script.pig.txt)上运行此命令时,我收到了所需的结果,但在Oozie(
Oozie job-Oozie)上运行此命令时http://localhost:11000/oozie -config job.properties-run
)我收到以下错误: 错误101:本地文件'myudfs.jar'不存在

你建议我做什么

提前感谢:)

参见案例4,此处:

总而言之,您可以选择三种方式:

  • 将jar文件放在工作流和Pig文件下面名为“lib”的文件夹中
  • 在清管器操作中使用
    标记指定文件的位置
  • 在清管器操作中使用
    标记指定文件的位置
  • 就我个人而言,我使用了
    标记,但我也尝试过使用lib文件夹,效果很好


    编辑:您可能需要在文件标记中包含符号链接。e、 g.
    myudfs.jar#myudfs.jar

    Pig版本是0.9.3 jar在哪里?你试过使用jar的完整路径吗?是的,我试过了,包括完整路径(/full/path/to/file)、相对路径(/file),甚至只是文件名(file)然后您需要从pig脚本中删除
    register
    语句,因为库目录中的jar会被Oozie服务器自动添加到类路径中
    package myudfs;
    import java.io.IOException;
    import org.apache.pig.EvalFunc;
    import org.apache.pig.data.Tuple;
    import org.apache.pig.impl.util.WrappedIOException;
    
    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 e;
            }
        }
    }
    
    REGISTER myudfs.jar;
    Raw = LOAD '/user/piguser/input' AS (name: chararray, age: int, gpa: int);
    x = FOREACH Raw GENERATE myudfs.UPPER(name);
    RMF 'output';
    STORE x INTO 'output';