1

これが私の Apache ログの外観である場合、PigLatin でデータを分割するためにどの区切り文字を使用すればよいでしょうか。

[Mon Jul 02 10:04:18 2012] [error] [client x.x.x.x] File does not exist: /home/ec2-  user/xxxxxxxxxx/xxxxxxxxx, referer: http://xxxx/xxxxx/xxxxx/

PigStorage(',') を試して、リファラーと他の文字列を分割しました。でもどうやって分けるんだよ

[Mon Jul 02 10:04:18 2012] [error] [client x.x.x.x] File does not exist: /home/ec2-user/xxxxxxxxxx/xxxxxxxxx

区切り文字としてスペースを使用すると、Mon Jul 02 10:04:18 2012 が複数の文字列に分割されます。

4

2 に答える 2

1

Piggybankの一部として、ログ ローダーを試しましたか?

于 2012-07-08T17:24:28.127 に答える
0

それが私が使用するものです:

REGISTER  /usr/local/pig-0.10.0/contrib/piggybank/java/piggybank.jar;        
A = load '*.log'
        USING org.apache.pig.piggybank.storage.MyRegExLoader(
              '(DATETIMEREX) (ERROREX) (CLIENTEX) (.*)')
        AS ( 
                 dateTime : chararray, 
                 error    : chararray,
                 client   : chararray, 
                 line     : chararray );       

DATETIMEX、ERROREX、CLIENTEX を適切な正規表現に置き換えます。

于 2012-08-23T18:14:15.217 に答える