要求是过滤特定日期的Pig中的记录。因此样本数据如下:
date_time visits count
2017-08-25 02:05:11 12345 5
2017-08-25 02:05:31 23456 7
2017-08-25 02:05:51 34567 1
2017-08-25 02:06:40 13423 3
在上述情况下,我们只需要前3个匹配。因此,过滤条件将为start_time == 02:05:00和结束时间== 02:06:00
有什么办法可以在Pig中实现?我经历了所有内置函数,但所有这些都是特定的。在时间部分没有任何作用。
如果您需要更多信息,请告诉我。
最佳答案
GetMinute应该可以帮助您过滤记录。使用第一列创建一个新的分钟记录,并使用它来过滤记录。
请注意,您可以在其他每小时时间戳记中使用相同的分钟值,在这种情况下,您可以创建一个小时列并在过滤器中使用它。
如果您的date_time列已经是datetime数据类型,则在没有Todate()函数的情况下对date_time列应用GetHour(),GetMinute()。
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);
关于hadoop - 需要在Pig脚本中按1分钟过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45921245/