我用 Pig Latin 编写了一个脚本,然后通过 Java 执行了它。这是我的代码:
public static void main(String args[]){
PigServer pigServer;
try {
Properties props = new Properties();
props.setProperty("fs.default.name", "hdfs://localhost:8022");
props.setProperty("mapred.job.tracker", "localhost:8021");
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
pigServer = new PigServer(ExecType.MAPREDUCE, props);
pigServer.registerScript("/home/training/Desktop/text_v6.pig");
}
catch (ExecException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
}
该程序运行良好,输出如下:
(2,4L)
(3,2L)
(1,1L)
...
我可能有数百万行这样的输出。这就是为什么我不想将 Pig 的输出存储到一个文件中,该文件将使用 Java 读取。我想立即将结果存储到 Java 结构中,例如 HashMap。
可能吗 ?
谢谢。