首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在猪中进行Roundup of Date

如何在猪中进行Roundup of Date
EN

Stack Overflow用户
提问于 2016-01-05 21:18:30
回答 1查看 96关注 0票数 0

我想在Pig中执行过滤条件,其中我想过滤出属于当前日期、当前小时或当前周的数据。

在输入数据中,我的输入为

2016-01-05 16:59:50,text11

2016-01-05 17:59:50,text11

我正在执行一个load函数

代码语言:javascript
复制
A = LOAD  '/hoursbetween-poc/input/' using PigStorage(',')  as (time:chararray,colval:chararray) ;


G = FILTER A BY HoursBetween(CurrentTime(),ToDate(time, 'yyyy-MM-dd HH:mm:ss'))<1;


dump G;

但它从当前日期减去了60分钟。我想筛选属于当前小时的所有记录

例如:

如果当前时间是6.30,代码在5.30之前过滤所有内容,我只想在5之前进行四舍五入和过滤。

如何在猪身上实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2016-01-06 03:53:23

输入:

代码语言:javascript
复制
2016-01-05 10:00:50,text1
2016-01-05 10:59:50,text2
2016-01-05 11:10:50,text3
2016-01-05 09:00:50,text4

猪脚本:

代码语言:javascript
复制
A = LOAD 'a.csv' USING PigStorage(',')  AS (time:chararray,colval:chararray) ;
B = FOREACH A GENERATE GetHour(CurrentTime()) AS cur_hr, GetHour(ToDate(time, 'yyyy-MM-dd HH:mm:ss')) AS act_hr, time, colval;
C = FILTER B BY (cur_hr - act_hr) <= 1;
DUMP C;

输出:

代码语言:javascript
复制
(11,10,2016-01-05 10:00:50,text1)
(11,10,2016-01-05 10:59:50,text2)
(11,11,2016-01-05 11:10:50,text3)

脚本在2016-01-05 11:40执行,如输出脚本从10:00开始选择记录中所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34612703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档