0

我有一个主要是猪工作的 oozie 工作流程。

其中workflow.xml有一条线<file>${hdfsPath}/hdfsLineItem.txt#LineItem.txt</file>

此文件用于其中一个 UDF,它被其他 UDF 间接使用,源代码片段为in = new DataInputStream(new FileInputStream("./LineItem.txt"));

我没有提交 oozie 工作的权限,但我可以提交猪工作。但是,我找不到使用该外部文本文件提交猪作业的等效方法。

我将该文件复制到我的空间并运行pig myscript.pig -file LineItem.txt,但 UDF 会抛出IOException. 有谁知道提交猪工作的等效方法?

4

1 回答 1

0

用另一种方式解决我的问题。文本文件也存储在 hdfs 上,我修改了 UDF 并将其更改为

FileSystem fs = FileSystem.get(UDFContext.getUDFContext().getJobConf());
DataInputStream in = new fs.open(new Path("_hdfsPath_/hdfsLineItem.txt"));

其余代码相同。最后我可以直接提交我的猪工作。

于 2014-08-12T20:59:58.657 回答