[HADOOP] 하이브 날짜 현명한 사진을 얻기 위해 가입
HADOOP하이브 날짜 현명한 사진을 얻기 위해 가입
나는이 개 테이블 B에서 키와 날짜를 사용 HIVE에서 테이블과 조인시 테이블 A에서 해당 이전에 가장 가까운 날짜 기록을 가입하려합니다. 예를 들어 다음은 두 입력 테이블은
<----------TABLE A-------------> <------------TABLE B------------>
A_id A_date changed_col B_id B_date B_value A_id
**** ****** *********** **** ****** ******* *****
A01 2017-03-20 ABC B01 2017-04-02 200 A01
A01 2017-04-01 XYZ B01 2017-04-04 500 A01
A01 2017-04-05 LLL B02 2017-04-07 900 A02
A02 2017-04-06 KKK B02 2017-04-30 800 A02
A02 2017-04-12 JJJ
내가 표 A와 테이블 B에 가입하면 그러나, 동일한 키 (A_ID)에 대한 테이블 A에서 가장 가까운 가장 낮은 일을 찾아야한다. 아래는 예상 출력 테이블은 다음과 같습니다
B_id B_date A_id A_date changed_col B_value
**** ****** **** ****** *********** *******
B01 2017-02-04 A01 2017-01-04 XYZ 200
B01 2017-04-04 A01 2017-01-04 XYZ 500
B02 2017-04-07 A02 2017-04-06 KKK 900
B02 2017-04-30 A02 2017-04-12 JJJ 800
어떤 도움을 많이 감사합니다. 감사
해결법
-
==============================
1.쿼리 나 자신을 알아 냈어
쿼리 나 자신을 알아 냈어
select * from (select b.*, a.*, row_number() over (partition by b.a_id, b.b_date order by b.b_date, datediff(to_date(b.b_date), to_date(a.a_date)) ) as rnk FROM b JOIN a ON b.a_id= a.a_id WHERE a.a_date <= b.b_date ) j1 where j1.rnk = 1 B_id B_date B_value A_id A_date changed_col rnk B01 2017-04-02 200 A01 A01 2017-04-01 XYZ 1 B01 2017-04-04 500 A01 A01 2017-04-01 XYZ 1 B02 2017-04-07 900 A02 A02 2017-04-06 KKK 1 B02 2017-04-30 800 A02 A02 2017-04-12 JJJ 1
당신은 순위를 포함하여 지금은 선택한 모든 A로부터 열 및 B를 들어 라인 (1)에서 필요한 열을 선택할 수 있습니다.
-
==============================
2.그것은 위치를 지정 가능 수 문자열 기능을 사용하여 두 테이블에서 날짜에 조건.
그것은 위치를 지정 가능 수 문자열 기능을 사용하여 두 테이블에서 날짜에 조건.
여기서 a.substring (A_date, 1,7) = b.substring (B_DATE, 1,7)
당신이이 곳 절에 추가 조건을 추가 할 수 있으며 필요한 종료 날짜의 사양에 따라.
from https://stackoverflow.com/questions/43460773/hive-join-to-get-the-date-wise-picture by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MapReduce의 재귀 계산을 사용하여 (0) | 2019.10.10 |
---|---|
[HADOOP] 임베디드 하둡 돼지 : UDF에 대한 자동 addContainingJar를 사용하는 올바른 방법은 무엇입니까? (0) | 2019.10.10 |
[HADOOP] 돼지에 문자를 교체 (0) | 2019.10.10 |
[HADOOP] 오류가 발생하면서 실행 하둡 맵리 듀스 - 예를-2.2.0.jar (0) | 2019.10.10 |
[HADOOP] 어떻게 개인 tasktrackers (노드)하는에 맵리 듀스는 실행해야을 지정? (0) | 2019.10.10 |