我试着用pig分析日志。需要从时间戳中提取日期。下面是示例日志。样品记录-
122.172.200.100 - - [17/Oct/2014:00:04:36 -0400] "GET /tag/hbase-sink/ HTTP/1.1" 200 15997 "https://www.google.co.in/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"
我已经用下面的命令加载了日志文件
logs = LOAD 'sample_log' USING org.apache.pig.piggybank.storage.apachelog.CombinedLogLoader() AS (addr: chararray, logname: chararray, user: chararray, time: chararray,method: chararray, uri: chararray, proto: chararray,status: int, bytes: int, referer: chararray, userAgent: chararray);
现在我使用dateextractor从时间中提取日期,如下所示
foreach_logs = FOREACH logs GENERATE org.apache.pig.piggybank.evaluation.util.apachelogparser.DateExtractor(time));
现在我要从日期中提取日期。我试过使用getday,但它不起作用。有人知道如何从日期中提取日期吗?
1条答案
按热度按时间am46iovg1#
首先确保将字段正确加载到变量中
time
。然后转换time
使用ToDate(time,'yyyy/MM/dd:HH:mm:ss')
然后使用GetDay()
。假设已正确加载数据。