使用oozie工作流文件元素的外部文件运行pig UDF的等效方法

时间:2014-08-12 05:58:35

标签: hadoop apache-pig oozie oozie-coordinator

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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