Sort/Cluster/Distribute By 절
Sort/Cluster/Distribute By 절 (Sort/Cluster/Distributed by Clause)
Hive 방언(Dialect)에서 지원하는 결과를 분할·정렬하는 절들입니다.
출처: 문서
본문
SORT BY
설명 (Description)
출력의 전체 순서를 보장하는 ORDER BY와 달리, SORT BY는 각 파티션 안의 결과 행이 사용자가 지정한 순서가 됨을 보장할 뿐입니다. 따라서 파티션이 둘 이상이면 SORT BY는 부분적으로 정렬된 결과를 반환할 수 있습니다.
문법 (Syntax)
query: SELECT expression [ , ... ] FROM src sortBy
sortBy: SORT BY expression colOrder [ , ... ]
colOrder: ( ASC | DESC )
파라미터 (Parameters)
colOrder: 반환 행의 순서를 지정하는 데 사용합니다. 기본 순서는ASC입니다.
예시 (Examples)
SELECT x, y FROM t SORT BY x;
SELECT x, y FROM t SORT BY abs(y) DESC;
DISTRIBUTE BY
설명 (Description)
DISTRIBUTE BY 절은 데이터를 다시 분할(repartition)하는 데 사용합니다. 지정된 표현식으로 평가한 값이 같은 데이터는 같은 파티션에 들어갑니다.
문법 (Syntax)
distributeBy: DISTRIBUTE BY expression [ , ... ]
query: SELECT expression [ , ... ] FROM src distributeBy
예시 (Examples)
-- only use DISTRIBUTE BY clause
SELECT x, y FROM t DISTRIBUTE BY x;
SELECT x, y FROM t DISTRIBUTE BY abs(y);
-- use both DISTRIBUTE BY and SORT BY clause
SELECT x, y FROM t DISTRIBUTE BY x SORT BY y DESC;
CLUSTER BY
설명 (Description)
CLUSTER BY는 DISTRIBUTE BY와 SORT BY의 축약입니다. CLUSTER BY는 입력 표현식에 따라 데이터를 먼저 다시 분할한 다음 각 파티션 안에서 데이터를 정렬합니다. 또한 이 절은 데이터가 각 파티션 안에서만 정렬됨을 보장합니다.
문법 (Syntax)
clusterBy: CLUSTER BY expression [ , ... ]
query: SELECT expression [ , ... ] FROM src clusterBy
예시 (Examples)
SELECT x, y FROM t CLUSTER BY x;
SELECT x, y FROM t CLUSTER BY abs(y);