在java中的整个脚本上运行pig explain命令

krc*_*cun 2 java apache-pig sql-execution-plan

我试图找到在java中的整个猪脚本上运行explain命令的方法.我使用的是PigServer,但它只提供单个查询(别名)而不是整个脚本的解释.有没有办法做这样的事情:

$ pig -x local -e 'explain -script Temp1/TPC_test.pig -out explain-out9.txt'
Run Code Online (Sandbox Code Playgroud)

但是从我的Java代码?

Lor*_*dig 5

您可以将PigRunner用于此目的.
例如:

import org.apache.pig.PigRunner;
import org.apache.pig.tools.pigstats.PigStats;

public class PigTest {

    public static void main(String[] args) throws Exception {

        args = new String [] {
                "-x", "local",
                "-e", "explain -script Temp1/TPC_test.pig -out explain-out9.txt"
        };

        PigStats stats = PigRunner.run(args, null);
        //print plan:
        //stats.getJobGraph().explain(System.out, "text", true);
    }

}
Run Code Online (Sandbox Code Playgroud)

我发现需要以下运行时依赖项来避免NoClassDefFoundError: