【发布时间】:2023-03-07 02:53:02
【问题描述】:
我可以加载将输出存储在 Java 中的 Pig 存储中的 pig 脚本的输出吗?
我所指的猪脚本的最后一行类似于 -
STORE D INTO '$output' USING PigStorage();
我想在 java 中导入关系,以便在 UI 中进一步处理和呈现。
如果是,我该怎么做?
【问题讨论】:
标签: java shell apache-pig
我可以加载将输出存储在 Java 中的 Pig 存储中的 pig 脚本的输出吗?
我所指的猪脚本的最后一行类似于 -
STORE D INTO '$output' USING PigStorage();
我想在 java 中导入关系,以便在 UI 中进一步处理和呈现。
如果是,我该怎么做?
【问题讨论】:
标签: java shell apache-pig
是的,你可以做到。使用Embedded Pig concept,它提供了有助于在java程序中运行pigscript的PigServer。
import java.io.IOException;
import org.apache.pig.PigServer;
public class WordCount {
public static void main(String[] args) {
PigServer pigServer = new PigServer();
try {
pigServer.registerJar("/mylocation/tokenize.jar");
runMyQuery(pigServer, "myinput.txt";
}
catch (IOException e) {
e.printStackTrace();
}
}
public static void runMyQuery(PigServer pigServer, String inputFile) throws IOException {
pigServer.registerQuery("A = load '" + inputFile + "' using TextLoader();");
pigServer.registerQuery("B = foreach A generate flatten(tokenize($0));");
pigServer.registerQuery("C = group B by $1;");
pigServer.registerQuery("D = foreach C generate flatten(group), COUNT(B.$0);");
pigServer.store("D", "myoutput");
}
}
这里有更多例子:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.pig.PigServer
【讨论】: