2017-08-28 3 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の場合、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); 
関連する問題