您好,我是新的PIG用户, 我正在尝试在txt文件中存储一些数据但是当我使用STORE命令时,它会创建一个包含以下文件的文件夹:_SUCCESS和part-r-00000。
如何在txt文件中获得此结果? 感谢。
答案 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