こんにちは私は新しいPIGユーザーです 私はtxtファイルにいくつかのデータを保存しようとしていますが、STOREコマンドを使用しているときには、次のファイル:_SUCCESSおよびpart-r-00000。apache pig、結果をtxtファイルに保存
この結果をtxtファイルで取得するにはどうすればよいですか?おかげさまで
こんにちは私は新しいPIGユーザーです 私はtxtファイルにいくつかのデータを保存しようとしていますが、STOREコマンドを使用しているときには、次のファイル:_SUCCESSおよびpart-r-00000。apache pig、結果をtxtファイルに保存
この結果をtxtファイルで取得するにはどうすればよいですか?おかげさまで
これは、通常は出力が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/
出力に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
(ドキュメント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