복붙노트

[HADOOP] 하이브는 성능에 대한 쿼리를 조인

HADOOP

하이브는 성능에 대한 쿼리를 조인

나는 A.id = B.id 아래 등에 B와 표 A에 가입 왼쪽으로합니다 :

select A.id,B.name from (select * from TABLEa)A 
LEFT JOIN (select * from TABLEb where partition IN ('GOP','LOP')B on A.id=B.id

여기 내 TableB의 두 값 GOP 및 LOP에 의해 분할된다.

또한 다음과 같은 접근 방식에 동일한 쿼리를 수행하려고 :

insert overwrite table final 
select A.id,B.name from (select * from TABLEa)A 
LEFT JOIN (select * from TABLEb where partition IN ('GOP')B on A.id=B.id;
insert INTOtable final 
select A.id,B.name from (select * from TABLEa)A 
LEFT JOIN (select * from TABLEb where partition IN ('LOP')B on A.id=B.id;

어떤 몸은 더 있어야하는 방법 말할 수 있습니까? 이성 또는 무엇 처음보다 두 번째 다른한다.

도와주세요

해결법

  1. ==============================

    1.

    select
        A.id,
        B.name
    from
        TABLEa as A 
        LEFT JOIN TABLEb as B on partition IN ('GOP','LOP') and A.id=B.id
    
  2. from https://stackoverflow.com/questions/44833026/hive-join-query-for-performance by cc-by-sa and MIT license