将pig结果存储到本地文件

时间:2012-12-03 14:35:07

标签: hadoop apache-pig

我运行猪脚本做一些aggerative操作,输出大小非常小。

现在我跑

hadoop fs -getmerge ...

分开。

任何方法让pig脚本直接将结果转储到本地文件中?

2 个答案:

答案 0 :(得分:4)

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

grunt> copyToLocal <src> <dest>

答案 1 :(得分:2)

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

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)

并通过(例如)

运行Python代码
pig -useHCatalog python_code.py