2014-10-08 2 views
0

입력 파일 구조를 처리하는 : 기록이 될 것 타임 스탬프 예상 입력 한 느낌의 크기에 따라 분류되어 있습니다 : 2-3TB돼지 스크립트 n 번째-1 기록

timestamp 
============== 
20141014120523 
20141014120534 
20141014120537 
20141014120542 
20141014120549 
20141014120555 
20141014120565 
20141014120570 
20141014120512 
... 
... 

돼지를 사용하여 내가 시간 차이를 찾을 필요 N 번째 레코드와 Nth-1 레코드 시간 스탬프 (20141014120534 - 20141014120523 = 11 초) 사이에 내가 이전 기록에서 시간 차이를 얻기 위해 모든 레코드를 통해 루프 필요

예 출력

0 
11 
3 
5 
... 

올바른 자원/참조/솔루션을 도와주세요.

답변

1

시도해 볼 수 있습니까?

input.txt 
20141014120523 
20141014120534 
20141014120537 
20141014120542 
20141014120549 
20141014120555 
20141014120565 
20141014120570 

PigScript: 
A = LOAD 'input.txt' using PigStorage() as (time:long); 
B = RANK A; 
C = FILTER B BY rank_A; 
D = FILTER B BY rank_A > 1; 
E = FOREACH D GENERATE ($0-1),$1; 
F = JOIN B BY $0, E BY $0; 
G = FOREACH F GENERATE (E::time - B::time); 
DUMP G; 

Output: 
(11) 
(3) 
(5) 
(7) 
(6) 
(10) 
(5)