我有一个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
。有谁知道提交猪工作的等效方式?
答案 0 :(得分:0)
通过另一种方式解决我的问题。文本文件也存储在hdfs中,我修改了UDF并将其更改为
FileSystem fs = FileSystem.get(UDFContext.getUDFContext().getJobConf());
DataInputStream in = new fs.open(new Path("_hdfsPath_/hdfsLineItem.txt"));
并且其余代码是相同的。最后我可以直接提交我的猪工作。