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];

相关推荐
喻师傅21 小时前
Hive 中 NULL 值在逻辑判断中的“陷阱”(踩坑复盘)
数据仓库·hive·hadoop
涤生大数据1 天前
放弃Canal后,我们用Flink CDC实现了99.99%的数据一致性
大数据·数据仓库·flink·大数据开发·flink cdc·数据开发·实时数据
jinxinyuuuus1 天前
订阅指挥中心:数据可移植性、Schema设计与用户数据主权
数据仓库·人工智能
老徐电商数据笔记2 天前
技术复盘第四篇:Kimball维度建模在电商场景的实战应用
大数据·数据仓库·技术面试
LF3_2 天前
Centos7,单机搭建Hadoop3.3.6伪分布式集群
大数据·hadoop·伪分布式
程序员小羊!2 天前
数仓数据基线,在不借助平台下要怎么做?
大数据·数据仓库
Hello.Reader3 天前
Flink SQL 的 LOAD MODULE 深度实战——加载 Hive 模块、理解模块发现与常见坑
hive·sql·flink
老徐电商数据笔记3 天前
技术复盘第二篇:电商数据主题域划分企业级实践
大数据·数据库·数据仓库·零售·教育电商·技术面试
亲亲菱纱3 天前
hive数仓分层
数据仓库
泰克教育官方账号3 天前
泰涨知识 | Hadoop的IO操作——压缩/解压缩
大数据·hadoop·分布式