Hive使用双重GroupBy解决数据倾斜问题

文章目录

  • 1.数据准备
  • [2.双重group by实现 解决数据倾斜](#2.双重group by实现 解决数据倾斜)
    • [2.1 第一层加盐group by](#2.1 第一层加盐group by)
    • [2.2 第二层去盐group by](#2.2 第二层去盐group by)

1.数据准备

create table wordcount(a string) row format delimited fields terminated by ',';

load data local inpath 'opt/2.txt' into table wordcount;

hive (default)> select * from wordcount;

OK

wordcount.a

b

a

a

a

a

b

b

c

c

e

d

2.双重group by实现 解决数据倾斜

随机数:ceil(rand()*10)

select split(salt_a,'')[1] alpah ,sum(count) from
(
select concat_ws('
',cast(ceil(rand()*10) as string),a) salt_a,count(1) count from wordcount group by concat_ws('',cast(ceil(rand()*10) as string),a)
) b group by split(salt_a,'
')[1];

alpah _c1

a 4

b 3

c 2

d 1

e 1

解析:

2.1 第一层加盐group by

select concat_ws('',cast(ceil(rand()*10) as string),a) salt_a,count(1) count from wordcount group by concat_ws(' ',cast(ceil(rand()*10) as string),a)

salt_a count

10_a 1

10_b 1

1_a 2

2_a 1

3_b 1

4_b 1

4_c 1

4_d 1

6_c 1

7_e 1

Time taken: 176.729 seconds, Fetched: 10 row(s)

2.2 第二层去盐group by

select split(salt_a,'_')[1] alpah ,sum(count) from

b group by split(salt_a,'_')[1];

相关推荐
计算机编程小咖12 小时前
《基于大数据的农产品交易数据分析与可视化系统》选题不当,毕业答辩可能直接挂科
java·大数据·hadoop·python·数据挖掘·数据分析·spark
小四的快乐生活2 天前
Hive 存储管理测试用例设计指南
hive·hadoop·测试用例
没有梦想的咸鱼185-1037-16632 天前
SWMM排水管网水力、水质建模及在海绵与水环境中的应用
数据仓库·人工智能·数据挖掘·数据分析
三劫散仙2 天前
mac m1上使用Kerberos访问远程linux hadoop集群的正确姿势
linux·hadoop·macos
源图客2 天前
Apache Ozone 2.0.0集群部署
hadoop·ozone
计算机毕设残哥2 天前
大数据毕业设计推荐:基于Hadoop+Spark的手机信息分析系统完整方案
大数据·hadoop·课程设计
PawSQL2 天前
十年磨一剑!Apache Hive 性能优化演进全史(2013 - )
大数据·hive·性能优化
派可数据BI可视化2 天前
解读商业智能BI,数据仓库中的元数据
大数据·数据仓库·数据分析·spark·商业智能bi
老刘聊集成2 天前
ETL 工具选型评测:2025 年 Top 5 工具优缺点对比(附评分表)
数据仓库·etl
越来越无动于衷2 天前
Spring Boot 整合 Spring MVC:自动配置与扩展实践
数据仓库·hive·hadoop