가능한 한 효율적으로 처리하려고합니다. Hive로 다른 열에 동일한 테이블을 효율적으로 결합하십시오.
내가 정수의 목록을 포함하는 단일 컬럼과 테이블, IDS을 말해봐,의는 'IDS'를 부르 자 :ids
0
1
2
3
4
5
6
그리고 내가 함께, 다른 테이블, 항목이 정수의 몇 가지 열 :
item1 item2 item3 item4
5 2 2 4
9 2 1 19
0 25 9 2
내가하고 싶은 것은 표 2에서 모든 열을 선택이지만, 값이 'IDS'테이블에없는 경우 I는 NULL을합니다. 그래서 내 결과는 다음과 같습니다
item1 item2 item3 item4
5 2 2 4
NULL 2 1 NULL
0 NULL NULL 2
내가 항목에서 선택하고 각 열에 대한 IDS에 가입하여이 작업을 수행 할 수 있습니다 :
불행하게도SELECT CASE WHEN ids1.id IS NOT NULL THEN items.item1 ELSE NULL,
CASE WHEN ids2.id IS NOT NULL THEN items.item2 ELSE NULL,
CASE WHEN ids3.id IS NOT NULL THEN items.item3 ELSE NULL,
CASE WHEN ids4.id IS NOT NULL THEN items.item4 ELSE NULL,
FROM items
LEFT OUTER JOIN ids ids1 ON (ids1.id = items.item1),
LEFT OUTER JOIN ids ids2 ON (ids2.id = items.item2),
LEFT OUTER JOIN ids ids3 ON (ids3.id = items.item3),
LEFT OUTER JOIN ids ids4 ON (ids4.id = items.item4)
,이 테이블이 증가 할 때 큰 (수백만 행), 동일한 테이블에 4 번 참여해야한다는 것은 상당히 어려운 일입니다. 이렇게하는 것이 더 빠르고 효율적인 방법이 있습니까?
감사합니다.
당신이보고에 대한 http://stackoverflow.com/questions/7412422/pivot-table-in-hive – YABADABADOU