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

zed5wv10  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

我有一个oozie工作流,主要是Pig的工作。
workflow.xml 只有一条线 <file>${hdfsPath}/hdfsLineItem.txt#LineItem.txt</file> 此文件用于其中一个自定义项中,该自定义项被其他自定义项间接使用,源代码片段为 in = new DataInputStream(new FileInputStream("./LineItem.txt")); 我没有权限提交oozie作业,但我可以提交Pig作业。但是,我找不到与外部文本文件相同的方法来提交pig作业。
我把那个文件复制到我的空间然后运行 pig myscript.pig -file LineItem.txt 但自由民主党会 IOException . 有没有人知道提交养Pig作业的等效方法?

drnojrws

drnojrws1#

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

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

其余的代码都是一样的。最后我可以直接提交我的Pig工作。

相关问题