如果这是我的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
如果我使用空格作为分隔符,则将2012年7月2日10:04:18分成多个字符串。
答案 0 :(得分:1)
您是否在Piggybank?
的一部分尝试过日志加载器答案 1 :(得分: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。