我以前写php代码来执行pig命令,效果很好,现在我换成java,但似乎不行,下面是我的代码:
String pigCommand = "pig -x local -p ouput=/tmp my_pig_script.pig";
Runtime r = Runtime.getRuntime();
Process p;
int exitVal;
try {
p = r.exec(pigCommand);
exitVal = p.waitFor();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
System.out.println("exitVal: " + exitVal);
System.out.println("Done");
如果我直接在控制台中运行that pig命令,它就会工作,如果我用其他shell命令替换该pig命令,比如“ping”www.yahoo.com,并运行java程序,它也可以工作。那么问题出在哪里呢?谢谢
1条答案
按热度按时间7uzetpgm1#
你应该使用
PigServer
从java程序执行pig脚本。它更简单,更便于携带。也可以看到这个答案:https://stackoverflow.com/a/11299259/373151