java程序中的进程执行pig命令

798qvoo8  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(403)

我以前写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程序,它也可以工作。那么问题出在哪里呢?谢谢

7uzetpgm

7uzetpgm1#

你应该使用 PigServer 从java程序执行pig脚本。它更简单,更便于携带。
也可以看到这个答案:https://stackoverflow.com/a/11299259/373151

相关问题