我是豬和Hadoop世界的新手。我遇到的問題可能很簡單,但我無法繼續。豬腳本來計算最小值,最大值emp定時
所以我有下面的數據,基本上在一天的數據刷卡。 我需要計算員工在一天中花費的總小時數,即第一次按時間(他到達辦公室的時間)和最後一次使用PIG的時間(當天的最後一次刷卡)之間的差異。
EmpID In_Time Out_Time
1 9:00 10:00
2 8:00 11:00
3 10:00 12:00
1 11:00 13:00
1 14:00 18:00
2 12:00 18:00
3 13:00 18:00
所以我寫了下面的腳本,但它似乎沒有給出正確的結果。
grunt> emprec = load '/emptime/emptime' using PigStorage() as (empid:int,in:chararray,out:chararray);
grunt> aggdata = group emprec by empid;
grunt> emptime = foreach aggdata generate (emprec.empid,MIN(emprec.in),MAX(emprec.out));
我似乎沒有得到正確的結果與腳本書面。
結果我需要的是
中間結果(我的理解)
EmpID In_Time Out_Time
1 9:00 18:00
2 8:00 18:00
3 10:00 18:00
需要最終輸出的Out_time-的In_Time
EmpID Total_Time
1 9:00
2 10:00
3 8:00
的區別我已經寫了最後線獲得最小和最大時間,所以我可以減去2,並獲得在辦公室花費的總時間
請注意,如果您想將時間假定爲Int或任何其他格式,請這樣做,因爲這只是一個示例。
由於提前
問候, 阿赫亞