需要在Pig脚本中过滤记录1分钟

时间:2017-08-28 14:20:57

标签: hadoop filter mapreduce apache-pig

要求是在Pig中过滤特定日期的记录。所以样本数据如下:

target="_blank"

在上述情况下,我们只需要前3次点击。所以过滤条件是start_time == 02:05:00和结束时间== 02:06:00

猪有什么办法可以实现吗?我浏览了所有内置函数,但所有函数都是特定于日期的。没有在时间部分工作。

如果您需要更多相关信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

GetMinute可以帮助您过滤记录。使用第一列创建新的列分钟并使用它来过滤记录。

请注意,您可以在其他每小时时间戳中使用相同的分钟值,在这种情况下,您可以创建一个小时列并在过滤器中使用它。

如果你的date_time列已经是数据类型datetime,那么在date_time列上应用GetHour(),GetMinute()而不使用Todate()函数。

B = FOREACH A GENERATE date_time,GetHour(ToDate(date_time,'yyyy-MM-dd HH:mm:ss')) as hour,GetMinute(ToDate(date_time,'yyyy-MM-dd HH:mm:ss')) as minute,visits,counts;
C = FILTER B BY (hour == 2 AND minute == 5);