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

相关推荐
一个数据大开发9 小时前
大模型时代的数据中台架构演进:从数据仓库到认知引擎
数据仓库·架构
r-t-H21 小时前
从零开始搭建CDH-第十二章
linux·hive·spark·centos·hbase
m0_639310791 天前
大数据技术原理-HDFS的安装与应用
java·大数据·jvm·hadoop·spring·hdfs·eclipse
188105069631 天前
摸鱼事务所——团队作业——大模型评测作业
大数据·hadoop·分布式
我思故我在78961 天前
hdfs文件系统
大数据·hadoop·hdfs
大连赵哥1 天前
分布式文件存储系统:Hadoop HDFS
hadoop·分布式·hdfs
王小王-1231 天前
基于Hadoop的服装电商数据分析系统【Hdfs、flume、HIve、sqoop、MySQL、echarts】
hive·hadoop·hdfs·服装电商分析·服装大数据
青春万岁!!1 天前
hiveSQL脚本性能优化-减少表扫描
大数据·hive·sql
这个DBA有点耶2 天前
数据迁移避坑指南:从Oracle到国产数据库的兼容性问题
数据库·数据仓库·sql·oracle·dba
灰太狼!!2 天前
数仓、接口开发常用clickhouses函数详解
数据仓库·sql·clickhouse