order2 [hive][db] rank() 함수를 이용하여 그룹별로 상위 n개의 결과만 출력하는 방법 그룹별로 상위 n개의 데이터만 출력하는 방법은 윈도우 함수(window function) 중에서 RANK() 함수를 이용한다. RANK 함수는 ORDER BY를 포함한 쿼리에서 특정 칼럼의 순위를 구하는 함수이다. 아래와 같이 PARTITION BY, ORDER BY 를 함께 이용하여 그룹별로 순위를 구할 수 있고,이 순위를 이용하여 상위 n개의 결과만 출력이 가능하다. SQL> SELECT JOB, ENAME, SAL, RANK( ) OVER (ORDER BY SAL DESC) ALL_RANK, RANK( ) OVER (PARTITION BY JOB ORDER BY SAL DESC) JOB_RANK FROM EMP; JOB ENAME SAL ALL_RANK JOB_RANK --------- ------.. 2017. 12. 27. [hive] order by, sort by, cluster by 의 차이 Order by- 전체 데이터를 정렬- 하나의 리듀서로 진행- 용량이 커지면 문제가 발생할 가능성이 높음- 용량이 많을 경우 limit 를 이용하여 데이터를 제한해야 함 sort by- 리듀서별로 데이터를 정렬- 즉, 파일별로 정렬되어 생성됨- 보통 distribute by 와 함께 사용하여 처리, - distribute by는 리듀서로 보내는 데이터의 분류 기준 cluster by- distributed by, sort by를 동시에 사용한 것 Hive 입문 발표 자료 from beom kyun choi http://saurzcode.in/2015/01/hive-sort-vs-order-vs-distribute-vs-cluster/ https://cwiki.apache.org/confluence/dis.. 2017. 2. 14. 이전 1 다음