[HADOOP] 하이브 QL - 각 항목 당 행 수 제한
HADOOP하이브 QL - 각 항목 당 행 수 제한
Where 절에 여러 항목이 나열된 경우 목록의 각 항목에 대해 결과를 N으로 제한하는 방법은 무엇입니까?
전의:
select a_id,b,c, count(*), as sumrequests
from table_name
where
a_id in (1,2,3)
group by a_id,b,c
limit 10000
해결법
-
==============================
1.귀하의 질문과 같은 소리는 a_id 당 최고 N을 얻는 것입니다. Hive 11에 소개 된 윈도우 함수로 이것을 할 수 있습니다 :
귀하의 질문과 같은 소리는 a_id 당 최고 N을 얻는 것입니다. Hive 11에 소개 된 윈도우 함수로 이것을 할 수 있습니다 :
SELECT a_id, b, c, count(*) as sumrequests FROM ( SELECT a_id, b, c, row_number() over (Partition BY a_id) as row FROM table_name ) rs WHERE row <= 10000 AND a_id in (1, 2, 3) GROUP BY a_id, b, c;
이것은 a_id 당 무작위로 선택된 행을 10,000 개까지 출력합니다. 단순히 a_id 이상으로 그룹화하려는 경우 추가로 분할 할 수 있습니다. 당신은 또한 창 함수에 의해 주문을 사용할 수 있습니다, 거기에 추가 옵션을 표시하는 많은 예제가 있습니다.
from https://stackoverflow.com/questions/11750312/hive-ql-limiting-number-of-rows-per-each-item by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HDFS에서 CSV를 읽는 HIVE에 테이블을 만들 수 없습니다. (0) | 2019.06.20 |
---|---|
[HADOOP] JAVA_HOME이 설정되어 있지 않습니다. (0) | 2019.06.20 |
[HADOOP] MapReduce의 교차 제품 (0) | 2019.06.20 |
[HADOOP] 자바 하둡 매퍼가 여러 값을 보내는 방법 (0) | 2019.06.20 |
[HADOOP] 창문에 hadoop 2.2 빌드 (0) | 2019.06.20 |