apache pig,将结果存储在txt文件中

时间:2016-03-28 15:39:41

标签: text apache-pig store

您好,我是新的PIG用户, 我正在尝试在txt文件中存储一些数据但是当我使用STORE命令时,它会创建一个包含以下文件的文件夹:_SUCCESS和part-r-00000。

如何在txt文件中获得此结果? 感谢。

3 个答案:

答案 0 :(得分:1)

这就是STORE输出通常的样子。 您可以从猪内部运行Hadoop fs命令,这样您就可以在猪的内部写下类似的东西(参见文档here

fs -getmerge /my/hdfs/output/dir/* /my/local/dir/result.txt
fs -copyFromLocal /my/local/dir/result.txt /my/hdfs/other/output/dir/

答案 1 :(得分:0)

使用cat命令读取文件,并使用put命令将输出通过管道传输到.txt文件

hadoop fs -cat /in_dir/part-* | hadoop fs -put - /out_dir/output.txt

使用getmerge命令将文件夹中的文件合并到输出.txt文件

hadoop fs -getmerge /in_dir/ /out_dir/output.txt

答案 2 :(得分:0)

就是这样,map reduce job写出输出。

由于Pig在内部运行map-reduce作业,因此作业以零件文件的形式写入输出:
part-m-00000 (地图输出)或 part-r-00000 (减少输出)。

假设您在脚本中提供以下输出目录(“ /user/output1.txt ”),因此它将具有:

/user/output1.txt/part-r-00000  
/user/output1.txt/_SUCCESS

在output1.txt中可能会创建多个零件文件,因此在这种情况下,您可以将这些文件合并为一个。

hadoop fs -getmerge /user/output1.txt/* /localdir/output/result.txt
hadoop fs -copyFromLocal /localdir/output/result.txt /user/output/result.txt