enter image description here 수백만 개가 넘는 레코드가있는 하이브 테이블이 있습니다. 입력은 다음과 같은 유형이다 : 입력 : 내가 원하는 무엇두 개의 다른 열에서 연속 된 두 행의 두 날짜 간 차이
rowid |starttime |endtime |line |status
--- 1 2007-07-19 00:05:00 2007-07-19 00:23:00 l1 s1
--- 2 2007-07-20 00:00:10 2007-07-20 00:22:00 l1 s2
--- 3 2007-07-19 00:00:00 2007-07-19 00:11:00 l2 s2
때 1 차 라인으로 STARTTIME 그룹에 의해 테이블입니다. 그런 다음 endtime과 starttime의 연속 된 두 행 사이의 차이점을 찾습니다. 차이가 5 분 이상인 경우 새 테이블에서 상태를 잘못 표시하여 사이에 새 행을 추가하십시오.
입력 행 1에서 시간 차이는 1 시간 10 분이므로 첫 번째 행에 대해 19 번째 날짜를 만들고 누락 된 시간으로 완료하고 20 번째 행을 아래에 추가하십시오.
출력 :
이rowid |starttime |endtime |line |status
--- 1 |2007-07-19 00:05:00 |2007-07-19 00:23:00 |l1 |s1
--- 2 |2007-07-19 00:23:01 |2007-07-19 00:00:00 |l1 |misstime
--- 3 |2007-07-20 00:00:01 |2007-07-20 00:00:09 |l1 |misstime
--- 4 |2007-07-20 00:00:10 |2007-07-20 00:22:00 |l1 |s2
--- 3 |2007-07-19 00:00:00 |2007-07-19 00:11:00 |l2 |s2
사람이 나를 색조에서 직접이를 달성하는 데 도움이 수 - 하이브? 유닉스 스크립트로도 가능합니다.
미리 감사드립니다.
당신이 샘플 날짜와 적절한 읽을 메이트 –
형식 죄송 설정 해당 결과를 공유하시기 바랍니다 수 있습니다. 이것을 그림 파일 형식으로 제출하겠습니다. 회신 해 주셔서 감사합니다. – DrSD
링크를 클릭하여 서식 문제와 관련된 이미지보기를 확인하십시오. 불편을 끼쳐 드려 죄송합니다. – DrSD