2017-06-28 11 views
0

HDFS内に生ログを持つファイルがあります。Hadoop:豚を使ってhdfsファイルの各行の末尾にテキストを追加する

私たちの要件は、これらのファイルのすべてのログの最後に... pig/hadoopコマンド/その他のマップベースのツールを使用してテキスト( '12345'など)を追加することです。新しいログファイルにそれをline.Store chararray、それぞれにテキストを追加するためにCONCATを使用します。

おかげ AJ

+1

これまでに何を試しましたか?私たちが試して助けてくれるよう投稿してください –

+0

これを行うにはマッパーが必要です。これまでに何を試しましたか? – user238607

答えて

0

ロード各ログエントリが1つのフィールドすなわちラインにロードされたファイルをアドバイスしてください個々のファイルが必要な場合は、ワイルドカードの読み込みではなく、各ファイルを読み込んで新しいファイルに保存するようにスクリプトをパラメータ化する必要があります。

Log = LOAD '/path/wildcard/*.log' USING TextLoader(line:chararray); 
Log_Text = FOREACH Log GENERATE CONCAT(line,'Your Text') as newline; 
STORE Log_Text INTO /path/NewLog.log'; 
+0

"inquisitive_mind"ありがとうございました。 – ankit

0

ファイルが極端に大きくない場合は、1つのシェルコマンドで実行できます。

hdfs dfs -cat /user/hdfs/logfile.log | sed 's/$/12345/g' |\ 
hdfs dfs -put - /user/hdfs/newlogfile.txt 
関連する問題