2013-07-09 5 views
3

나는 하이브 (버전 0.10.0) 로의 테라 데이타 변환 작업을하고 있습니다.하이브에 QUALIFY Row_Number 사용

테라 데이타 쿼리 :

QUALIFY ROW_NUMBER() OVER (PARTITION BY ADJSTMNT,SRC_CMN , TYPE_CMD,IOD_TYPE_CD,ROE_PST ,ORDR_SYC,SOR_CD,PROS_ED ORDER BY ADJSTMNT)=1 

내 검색을했고, 하이브에 Row_Sequence에 대한 UDF를 발견했다. 또한 오버 파티션을 모두 배포 및 정렬 기준으로 바꿨습니다. 그러나 나는 QUALIFY와 붙어있다.

위의 하이브로 변환 할 수있는 아이디어는 정말 감사 드리며 많은 도움이됩니다.

답변

5

분석 기능 (ROW_NUMBER(), SUM(), COUNT(), ... 이상 (파티션 ...))이있는 QUALIFY는 분석 값이 포함 된 하위 쿼리의 WHERE입니다.

예 : 하이브

0.12에 해석 함수 사용할 :

select A,B,C 
from (
    select A,B,C, ROW_NUMBER() over (...) as RNUM 
    from X 
) t 
where RNUM = 1 

NB :

select A,B,C 
from X 
QUALIFY ROW_NUMBER() over (...) = 1 

가 동등