복붙노트

[HADOOP] 하이브의 열에있는 카테고리의 비율 계산

HADOOP

하이브의 열에있는 카테고리의 비율 계산

하이브에는 다음과 같은 표가 있습니다.

 id cname
 1 Blue
 2 Green
 3 Green
 4 Blue
 5 Blue

cname 열의 각 색상에 대한 백분율을 제공하는 하이브 쿼리를 작성하는 데 도움이 필요합니다. 이런 식으로 뭔가 :

Blue  60%
Green 40%

미리 감사드립니다.

해결법

  1. ==============================

    1.분석 기능 사용 :

    분석 기능 사용 :

    select cname, concat(pct, ' %') pct
    from
    (
    select (
            count(*) over (partition by cname)/
            count(*) over ()
           )*100 as pct,
           cname
      from (--Replace this subquery with your table
            select stack (5,
                          1, 'Blue',
                          2, 'Green',
                          3, 'Green',
                          4, 'Blue',
                          5, 'Blue' )  as (id, cname)
    
            ) colors
    )s
    group by cname, pct;
    

    결과:

    OK
    Blue    60.0 %
    Green   40.0 %
    

    색상 하위 쿼리를 테이블로 대체하기 만하면됩니다.

  2. from https://stackoverflow.com/questions/52467496/calculate-the-percentage-of-categories-in-a-column-in-hive by cc-by-sa and MIT license