我用Pig拉丁语写了一个脚本,然后通过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。
有可能吗?
谢谢。
1条答案
按热度按时间u0sqgete1#
您可以检索
Iterator
使用openIterator
中的方法PigServer
. 这是假设你没有其他人dump
或者store
你的Pig剧本里的陈述。另请参见:http://pig.apache.org/docs/r0.10.0/api/org/apache/pig/pigserver.html#openiterator(java.lang.string)