4

我运行 pig 脚本做了一些激进的操作,输出的大小很小。

现在我跑

hadoop fs -getmerge ...

分别地。

有什么方法可以让猪脚本直接将结果转储到本地文件中?

4

2 回答 2

4

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

grunt> copyToLocal <src> <dest>
于 2012-12-04T00:21:55.063 回答
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
于 2013-12-11T20:45:12.923 回答