2014-05-12 3 views
0

5 개의 열이있는 하이브 테이블 A가 있는데 첫 번째 열 (A.key)이 키이고 5 개의 열을 모두 유지하려고합니다. B에서 2 열을 선택하고 싶습니다. B.key1과 B.key2, C에서 2 열, C.key1과 C.key2를 말하고 싶습니다. 이 열을 A.key = B.key1 및 B.key2 = C.key1과 결합하고 싶습니다.다른 테이블에서 여러 열을 선택하고 하이브에 참여하십시오

원하는 것은 다음과 같은 열이있는 새로운 외부 테이블 D입니다. B.key2 및 C.key2 값은 일치하는 항목이없는 경우 NULL을 지정해야합니다.

A.key, A_col1, A_col2, A_col3, A_col4, B.key2, C.key2 

올바른 하이브 쿼리 명령은 무엇이되어야합니까? 내 첫 시도에 대한 최대 분할 오류가있어.

답변

1

이 방법이 유용합니까?

create external table D as 
select A.key, A.col1, A.col2, A.col3, A.col4, B.key2, C.key2 
from A left outer join B on A.key = B.key1 left outer join C on A.key = C.key2; 

그렇다면 언급 한 "최대 분할 오류"에 대한 자세한 정보를 게시 할 수 있습니까? 복사 + 붙여 넣기 특정 오류 메시지 텍스트가 좋습니다.

+0

"외부"를 삭제해야한다는 것을 제외하고는 검색어가 거의 정확합니다. "외부 용"과 호환되지 않습니다. 첫 번째 시도에서 작성한 내용입니다. 내가 떨어 뜨리면 효과가있었습니다. 최대 분할 오류에 대해서는 hadoop 구성과 관련이 있으며 쿼리와 관련이 없습니다. – Jin

관련 문제