나는 돼지와 하둡 세계에 처음 온 사람입니다. 내가 가진 문제는 간단 할 수도 있지만 계속할 수는 없습니다.최소, 최대 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));
필자는 스크립트 작성시 올바른 결과를 얻지 못하는 것 같습니다.
내가 필요 결과는 필요한 최종 출력이 Out_time을-IN-time보다
EmpID Total_Time
1 9:00
2 10:00
3 8:00
의 차이가 나는 마지막을 쓸 수 있었
EmpID In_Time Out_Time
1 9:00 18:00
2 8:00 18:00
3 10:00 18:00
(내 이해)
중간 결과는 라인은 최소 및 최대 시간을 얻을 수 있도록 내가 2를 빼고 총 시간을 사무실에서 보냈다.
시간을 Int 또는 다른 형식으로 가정하려면이 예제를 참조하십시오. chararray
데이터 형식에 MAX
, MIN
를 사용하여 사전
감사합니다, Chetan에