你好,我是一个新的pig用户,我正在尝试将一些数据存储在一个txt文件中,但是当我使用store命令时,它会创建一个包含以下文件的文件夹:\ u success和part-r-00000。如何在txt文件中得到这个结果?谢谢。
niknxzdl1#
使用cat命令读取文件,并使用put命令将输出通过管道传输到.txt文件
hadoop fs -cat /in_dir/part-* | hadoop fs -put - /out_dir/output.txt
或使用getmerge命令将文件夹中的文件合并到output.txt文件
hadoop fs -getmerge /in_dir/ /out_dir/output.txt
fivyi3re2#
就是这样,map reduce job写输出。由于pig在内部运行map reduce job,因此job以零件文件的形式写入输出:第m-00000部分(Map输出)或第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
kmynzznz3#
这是怎么回事 STORE 输出通常是这样的。您可以从pig内部运行hadoop fs命令,这样您就可以在pig内部编写如下内容(请参阅此处的文档)
STORE
fs -getmerge /my/hdfs/output/dir/* /my/local/dir/result.txt fs -copyFromLocal /my/local/dir/result.txt /my/hdfs/other/output/dir/
3条答案
按热度按时间niknxzdl1#
使用cat命令读取文件,并使用put命令将输出通过管道传输到.txt文件
或
使用getmerge命令将文件夹中的文件合并到output.txt文件
fivyi3re2#
就是这样,map reduce job写输出。
由于pig在内部运行map reduce job,因此job以零件文件的形式写入输出:
第m-00000部分(Map输出)或第r-00000部分(减少输出)。
假设您在脚本中提供以下输出目录(“/user/output1.txt”),那么它将具有:
output1.txt中可能创建了多个零件文件,因此在这种情况下,可以将这些文件合并为一个。
kmynzznz3#
这是怎么回事
STORE
输出通常是这样的。您可以从pig内部运行hadoop fs命令,这样您就可以在pig内部编写如下内容(请参阅此处的文档)