我是新的Pig脚本,hadoop,hbase。这是我需要知道的。我想运行一个pig脚本,我不想在我的java程序中嵌入pig脚本,我想通过任何pig执行方法来运行它,传递必要的pig脚本和参数(可能是参数文件)。核心pig库或任何其他库是否提供了执行pig脚本的方法。我已经尝试过java运行时exec方法,我用空格分隔的字符串传递一些参数,所以我放弃了通过运行时exec方法调用pig grunt命令,因为这不是执行pig命令的正确方法。
我是新的Pig脚本,hadoop,hbase。这是我需要知道的。我想运行一个pig脚本,我不想在我的java程序中嵌入pig脚本,我想通过任何pig执行方法来运行它,传递必要的pig脚本和参数(可能是参数文件)。核心pig库或任何其他库是否提供了执行pig脚本的方法。我已经尝试过java运行时exec方法,我用空格分隔的字符串传递一些参数,所以我放弃了通过运行时exec方法调用pig grunt命令,因为这不是执行pig命令的正确方法。
3条答案
按热度按时间bihw5rsg1#
您可以使用org.apache.pig.pigserver从java程序运行pig脚本。
类路径上需要“pig.properties”。
或者将java.util.properties的示例传递给pigserver构造函数。
0kjbasz62#
我不太明白你在问什么。您想知道如何从java程序运行pig脚本吗?
如果是这样,我们就用这个班
org.apache.pig.PigRunner
为了这个。其javadoc声明:
帮助在java程序中运行pig脚本的实用工具。
然而,根据我的经验,pig并不是真的打算以这种方式使用(至少在版本0.8中是这样)。我们遇到了一些问题,比如文件流保持打开状态,临时文件没有被删除。
rseugnpd3#
既然其他人通过在java中嵌入pig来很好地解释pig的执行,那么让我来补充一下如何在没有java的情况下运行参数化pig。
在这个场景中,您所需要的只是将pig代码行保存为pig文件
myFirstPigScript.pig
.接下来需要的是内部参数。好吧,这是你跑步的方法
myFirstPigScript.pig
有三个输入参数。你的Pig剧本看起来像
示例输入文件将是一个两列csv文件
输出“part”文件将出现在outdirectory中