[HADOOP] 돼지에서 다른 행에서 한 행의 값을 빼기
HADOOP돼지에서 다른 행에서 한 행의 값을 빼기
나는 약간의 로그 파일을 분석하기 위해 돼지를 사용하여 샘플 프로그램을 개발하기 위해 노력하고있어. 나는 다른 작업의 실행 시간을 분석 할. 내가 작업의 로그 파일을 읽을 때, 나는 시작 시간과 같은 작업의 종료 시간을 얻을 :
(Wed,03/20/13,01:03:37,EDT)
(Wed,03/20/13,01:05:00,EDT)
이제, 경과 시간을 계산하기 위해, 나는이 2 타임 스탬프를 뺄 필요하지만, 두 타임 스탬프가 같은 가방에 있기 때문에, 나는 그들을 비교하는 방법을 모르겠어요. 그래서 나는이 작업을 수행하는 방법에 대한 아이디어를 찾고 있어요. 감사!
해결법
-
==============================
1.두 로그 라인에있는 작업에 대한 고유 ID가 있습니까? 또한 시작되는 이벤트 표시하는 뭔가가, 그리고 끝은 무엇입니까?
두 로그 라인에있는 작업에 대한 고유 ID가 있습니까? 또한 시작되는 이벤트 표시하는 뭔가가, 그리고 끝은 무엇입니까?
그렇다면, 당신은 한 번 최종 이벤트 시작 이벤트, 두 번, 한 번 데이터 집합을 읽고, 함께이 가입 할 수있다. 그런 다음 그 안에 두 이벤트 모두 하나 개의 기록을 가지고 있습니다.
그래서:
A = FOREACH logline GENERATE id, type, timestamp; START = FILTER A BY (type == 'start'); END = FILTER A BY (type == 'end'); JOINED = JOIN START by ID, END by ID; DIFF = FOREACH JOINED GENERATE (START.timestamp - END.timestamp); // or whatever;
from https://stackoverflow.com/questions/15574159/subtract-one-rows-value-from-another-row-in-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 오류 : 감속기 단계에서 Java 힙 공간 (0) | 2019.09.18 |
---|---|
[HADOOP] 어떻게 테이블, 열, 뷰, 제약 키와 주석 열 하이브의 메타 데이터를 얻으려면? (0) | 2019.09.18 |
[HADOOP] 몽고 - 하둡 커넥터를 사용하여 MongoDB와 하이브를 연결할 수 없습니다 (0) | 2019.09.18 |
[HADOOP] 읽고 FLINK 스트리밍 작업에서 HBase를로 작성하는 방법 (0) | 2019.09.18 |
[HADOOP] 어떻게 스파크와 사용자 정의 S3 서버에 새로운 하둡 마루 마법으로 참여를 사용하는 (0) | 2019.09.17 |