Hadoop 计算配置单元中列中类别的百分比

Hadoop 计算配置单元中列中类别的百分比,hadoop,hive,hdfs,Hadoop,Hive,Hdfs,我在蜂巢中有一个表,颜色,看起来像这样: id cname 1 Blue 2 Green 3 Green 4 Blue 5 Blue Blue 60% Green 40% 我需要帮助编写一个配置单元查询,该查询给出cname列中每种颜色的百分比。看起来像这样的东西: id cname 1 Blue 2 Green 3 Green 4 Blue 5 Blue Blue 60% Green 40% 提前谢谢 使用分析功能: select cname, concat

我在蜂巢中有一个表,
颜色
,看起来像这样:

 id cname
 1 Blue
 2 Green
 3 Green
 4 Blue
 5 Blue
Blue  60%
Green 40%
我需要帮助编写一个配置单元查询,该查询给出cname列中每种颜色的百分比。看起来像这样的东西:

 id cname
 1 Blue
 2 Green
 3 Green
 4 Blue
 5 Blue
Blue  60%
Green 40%

提前谢谢

使用分析功能:

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 %
只需将
colors
子查询替换为您的表即可