2016-03-28 21 views
0

こんにちは私は新しいPIGユーザーです 私はtxtファイルにいくつかのデータを保存しようとしていますが、STOREコマンドを使用しているときには、次のファイル:_SUCCESSおよびpart-r-00000。apache pig、結果をtxtファイルに保存

この結果をtxtファイルで取得するにはどうすればよいですか?おかげさまで

答えて

1

これは、通常は出力がSTOREのようになります。 あなたは豚の内側に以下のようなものを書くことができますので、あなたが内部の豚からのHadoop fsのコマンドを実行することができます方法です

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

出力にgetmergeコマンドを使用して、フォルダ内のファイルをマージputコマンドに

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

または

を使用してファイルを.txtに出力をcatコマンドとパイプを使用してファイルを読むには

を.txtファイル
hadoop fs -getmerge /in_dir/ /out_dir/output.txt 
0

(ドキュメントhereを参照)、マップを減らすジョブは出力を書き込みます。

豚は、ジョブが一部ファイルの形で出力を書き込むように、内部ジョブをマップ減らす実行されるように:
部-M-00000(出力MAP)または一部-R-00000(出力を低下させます)。

のは、あなたが出力ディレクトリ以下与えているとしましょう(「 /user/output1.txt」)それがありますので、スクリプト内:

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

OUTPUT1の内側に作成された複数の部品ファイルがあるかもしれません。 txtの場合は、それらを1つにマージすることができます。

hadoop fs -getmerge /user/output1.txt/* /localdir/output/result.txt 
hadoop fs -copyFromLocal /localdir/output/result.txt /user/output/result.txt 
関連する問題