繁体   English   中英

从PIG中的时间戳中提取日期

[英]Extract Day from Timestamp in PIG

我正在尝试使用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));

现在,我必须从日期中提取Day。 我尝试使用GetDay,但无法正常工作。 谁能从日期中提取日期?

首先确保你正在正确地加载到变量现场time 。然后将转换time到使用日期时间对象ToDate(time,'yyyy/MM/dd:HH:mm:ss')然后使用GetDay()假设你已正确加载数据。

foreach_logs = FOREACH logs GENERATE GetDay(ToDate(time,'dd/MMM/yyyy:HH:mm:ss Z'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM