[HADOOP] NOT IN 절을 실행하는 하이브 명령
HADOOPNOT IN 절을 실행하는 하이브 명령
두 개의 테이블, tab1 & tab2 있습니다.
tab1(T1) tab2(T2)
a1 b1
b1 c1
c1 f1
d1 g1
T2에 존재하지 않는 테이블 T1의 값을 찾고 있습니다. 이 경우 출력은 a1 d1이어야합니다.
다음 쿼리를 시도했지만 올바른 솔루션을 얻을 수 없습니다.
select distinct tab1.T1 from tab1 left semi join tab2 on (tab1.T1!=tab2.T2);
해결법
-
==============================
1.
SELECT t1.str FROM tab1 t1 LEFT OUTER JOIN tab2 t2 ON t1.str = t2.str WHERE t2.str IS NULL;
결과:
OK a1 d1
"왜 t2.str은 null 조건입니다": 왼쪽 외부 조인은 첫 번째 테이블의 모든 값이 결과에 포함되도록합니다. 그러면 두 번째 테이블에 값이 없을 때 어떤 일이 발생합니까?이 경우 두 번째 테이블의 모든 열이 null로보고됩니다.
따라서 위의 경우 두 번째 테이블 항목이 누락 된 상태를 정확하게 검색하고 있으므로 다음과 같이 처리합니다.
from https://stackoverflow.com/questions/20880124/hive-command-to-execute-not-in-clause by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MapReduce 작업 출력 정렬 순서 (0) | 2019.06.04 |
---|---|
[HADOOP] 병렬로 여러 클라이언트의 HDFS 파일에 추가 할 수 있습니까? (0) | 2019.06.04 |
[HADOOP] Hive가 파티션없이 또는 hive-site.xml을 편집하여 서브 디렉토리로 재귀 적으로 내려갈 수 있습니까? (0) | 2019.06.04 |
[HADOOP] hadoop java.net.URISyntaxException : 절대 URI의 상대 경로 : rsrc : hbase-common-0.98.1-hadoop2.jar (0) | 2019.06.04 |
[HADOOP] Hive는지도 축소를 사용할 때와 사용하지 않을 때를 어떻게 결정합니까? (0) | 2019.06.04 |