在Java程序中执行pig命令

时间:2013-01-24 06:15:33

标签: java process apache-pig runtime.exec

我以前编写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");

如果我直接在控制台中运行那个pig命令,它会起作用,如果我更换的话 Pig命令与其他shell命令说'ping www.yahoo.com',然后运行 java程序,它也适用。那可能是什么问题呢?感谢

1 个答案:

答案 0 :(得分:0)

您应该使用PigServer从java程序执行pig脚本。它更加万无一失,更加便携。

另请参阅此答案:https://stackoverflow.com/a/11299259/373151