2017-08-28 82 views
0

需要過濾豬在某一天的記錄。所以樣本數據如下:需要在豬腳本中過濾1分鐘的記錄

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中實現?我瀏覽了所有內置函數,但所有這些函數都是特定日期的。沒有在時間部分工作。

如果您需要更多信息,請告訴我。

回答

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);