将猪结果存储到本地文件

Posted

技术标签:

【中文标题】将猪结果存储到本地文件【英文标题】:Store pig result to local file 【发布时间】:2012-12-03 14:35:06 【问题描述】:

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

现在我跑了

hadoop fs -getmerge ...

分开。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于将猪结果存储到本地文件的主要内容,如果未能解决你的问题,请参考以下文章

无法读取输入文件:使用 DBStorage 将猪存储到 MYSQL

如何将猪输出存储到蜂巢表?

本地文件系统作为 Django 中的远程存储

标注数据读取与存储案例:xml读取本地文件存储到pkl

无法将 Google BigQuery 导出到本地计算机中的 CSV 文件

使用 file_get_contents 将本地 PHP 文件的 HTML 输出存储到字符串中