Hadoop Pig (0.10.0) を使用してログ ファイルを処理しています。ログ行は次のようになります。
2012-08-01 INFO (User:irim) getListedStocksByMarkets completed in 7041 ms
空白で分割されたトークンとの関係を取得したいと思います。つまり、次のとおりです。
(2012-08-01,INFO,(User:irim),getListedStocksByMarkets,completed,in,7041,ms
)
ステートメントでそのデータをロードする:
records = LOAD 'myapp.log' using PigStorage(' ');
私のトークンはいくつかの空のトークンにつながるいくつかの空白で区切られる可能性があるため、それを達成できませんでした。PigStorage は正規表現区切り文字をサポートしていないようです (または、少なくともそのように構成することに成功していません)。
だから私の質問: それらのトークンを取得するための最良の方法は何でしょうか?
リレーションから空の要素を削除できれば幸いですが、 Pig でそれを行うことは可能ですか?
たとえば、次のように開始します。
(2012-08-01,,,INFO,,,(User:irim),,getListedStocksByMarkets,completed,in,7041,ms
)
取得するため
(2012-08-01,INFO,(User:irim),getListedStocksByMarkets,completed,in,7041,ms
)
それから別のアプローチを試みていますが、TextLoader
それTOKENIZE
が最善の戦略であるかどうかはわかりません。おそらく、ユーザー負荷関数の方がより自然な選択です...
よろしく、
ジョエル