Hadoop 将清管器结果存储到本地文件

Hadoop 将清管器结果存储到本地文件,hadoop,apache-pig,Hadoop,Apache Pig,我运行pig脚本做一些聚合操作,输出的大小非常小 现在我跑了 hadoop fs -getmerge ... 分开 有没有办法让pig脚本直接将结果转储到本地文件?如果您不担心将所有内容合并到一个文件中,那么可以在grunt中使用copyToLocal命令(http://wiki.apache.org/pig/Grunt): grunt>copyToLocal 另一种可能的方法是将Pig嵌入Python或JavaScript。您可以这样做(在Python中): 并通过运行Python代码(例如

我运行pig脚本做一些聚合操作,输出的大小非常小

现在我跑了

hadoop fs -getmerge ...
分开


有没有办法让pig脚本直接将结果转储到本地文件?

如果您不担心将所有内容合并到一个文件中,那么可以在grunt中使用copyToLocal命令(http://wiki.apache.org/pig/Grunt):

grunt>copyToLocal

另一种可能的方法是将Pig嵌入Python或JavaScript。您可以这样做(在Python中):

并通过运行Python代码(例如)

grunt> copyToLocal <src> <dest>
import os
from org.apache.pig.scripting import Pig

P = Pig.compile("PUT YOUR PIG CODE HERE")
hdfs_input = "YOUR HDFS INPUT"
hdfs_output = "YOUR HDFS OUTPUT"
local_output = "YOUR LOCAL OUTPUT"
result = P.bind({'in': input, 'out': hdfs_output}).runSingle()
os.system("hadoop fs -getmerge " + hdfs_output + " " + local_output)
pig -useHCatalog python_code.py