[HADOOP] HIVE에서 두 테이블을 결합하는 법.
HADOOPHIVE에서 두 테이블을 결합하는 법.
두 테이블 A와 B는 모두 다음과 같은 구조를 가지고 있습니다.
// Table A
Name Age actualdate no
// Table B
City sdate edate id
JOIN, id = no 및 sdate <= actualdate 및 edate> = actualdate를 사용하여 A 및 B에서 모든 필드를 얻으려고합니다.
나는 where 절을 사용하여 아래와 같이 시도했지만 작동하지 않는다.
select v3.*, t3.* from A v3
JOIN
B t3
where v3.id = t3.no and
v3.sdate <= t3.actualdate and
v3.edate >= t3.actualdate
limit 1;
On 절 사용 :
select v3.*, t3.* from A v3
JOIN
B t3
ON ( v3.id = t3.no and
v3.sdate <= t3.actualdate and
v3.edate >= t3.actualdate )
limit 1;
불행히도 Hive는 동등한 도구를 지원하지 않습니다. 거기 조인을 사용하여 위의 달성 방법이 있습니까?
해결법
-
==============================
1.ON 절 내에서 <= 및> = 조건을 사용하는 대신 WHERE를 사용하여 필터링을 수행 할 수 있습니다.
ON 절 내에서 <= 및> = 조건을 사용하는 대신 WHERE를 사용하여 필터링을 수행 할 수 있습니다.
select v3.*, t3.* from A t3 JOIN B v3 ON ( v3.id = t3.no) WHERE v3.sdate <= t3.actualdate and v3.edate >= t3.actualdate limit 1;
참고 : t3 및 v3 별칭이 서로 바뀌 었습니다.
from https://stackoverflow.com/questions/25832513/how-to-join-two-tables-in-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 쿼리 하이브 Metastore (0) | 2019.07.01 |
---|---|
[HADOOP] Cygwin에서 Hive와 PIG / Grunt 셸이 멈 춥니 다. (0) | 2019.06.30 |
[HADOOP] 하이브에 데이터베이스를 만드는 동안 사용 권한이 거부되었습니다. (0) | 2019.06.30 |
[HADOOP] Spark : HDFS의 기존 경로에 RDD 저장 (0) | 2019.06.30 |
[HADOOP] PySpark 설치 오류 (0) | 2019.06.30 |