2012-12-03 91 views
4

我運行豬腳做一些固定操作,並且輸出大小很小。將豬結果存儲到本地文件

現在我單獨運行

hadoop fs -getmerge ... 

任何方式讓豬腳本直接轉儲結果到本地文件?

回答

4

如果你不擔心一切合併到單個文件,那麼你可以使用咕嚕的copyToLocal命令(http://wiki.apache.org/pig/Grunt):

grunt> copyToLocal <src> <dest> 
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