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

文章目录

  • 1.数据准备
  • 2.双重group by实现 解决数据倾斜
    • 2.1 第一层加盐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];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot rabbitmq常用配置

直接上代码 package com.example.demo;import org.aopalliance.aop.Advice; import org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer; import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframewo…

TP-LINK路由器的IPTV功能测试验证

路由器设置 路由器设置页面的说明: 此功能需配合TP-LINK面板式AP使用,可在路由器与AP之间建立IPTV数据透传通道,改善IPTV机顶盒与光猫距离较远不易连接的问题。 注意:开启IPTV功能会导致LLDP功能无法正常使用。 直接按设置向导…

C++Qt:noteBookPro_01

一、创建项目 选择Qt Widgets 常用的是QWidgets和MainWindow。两者的区别: QWidgets用于简单的窗口,没有内置的菜单栏、工具栏和状态栏。适用于简单专用的应用程序,不需要复杂的界面组件。 MainWindow是包含完整的菜单栏、工具栏和状态栏的主…

Linux 主机数据拷贝与 Linux 服务器之间拷贝文件的方法

Linux 主机数据拷贝与 Linux 服务器之间拷贝文件的方法 1. 使用 scp 命令2. 使用 rsync 命令3. 使用 scp 和 rsync 的图形界面工具4. 使用 FTP/SFTP 协议总结与比较 在 Linux 系统中,数据拷贝是日常操作中的常见需求,尤其是在不同主机或服务器之间进行文…

近场2D beamforming Heatmap图

文章目录 想法代码目前啥样想法 参考论文Beam Focusing for Near-Field Multiuser MIMO Communications,可视化beam focusing效应 代码 clc; clear;% 网格范围 D = 1; % 整个均匀平面阵列的孔径 lambda = 1e-2; % 波长0.01m,单位:米 30GhzN_d = floor(2 * D / lambda); %…

深入理解C++ 虚函数

C 中的虚函数(virtual function)是面向对象编程中的一个重要概念,它允许子类重新定义从父类继承的方法。当子类对象被当作父类对象使用时,可以通过子类的方法实现来调用子类的方法,而不是父类的方法。这就是多态&#…

Java 播放音频

Java 播放音频 1 依赖2 接口3 实现4 测试 1 依赖 <dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5.4</version> </dependency><!-- 如果需要解码播放flac文件则引…

PS自由变换的小技巧--墙面广告牌

墙面广告牌&#xff0c;如何用PS做出看上去特别真实的一个效果 1.首先&#xff0c;我们会有墙面跟广告栏2个图层 2.然后将广告牌复制一层 3.接着用钢笔工具画出墙面的透视&#xff0c;也就是两条线&#xff0c;这两条线的交叉点就是墙面的透视点 4.接着选中广告牌复制图层&…

杨氏矩阵和杨辉三角

杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N); 分析 若要满足要求时间复杂度小于O(N)&#xff0c;就不能每一行一个个…

spring工具类

/*** spring工具类 方便在非spring管理环境中获取bean* */ Component public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware {/** Spring应用上下文环境 */private static ConfigurableListableBeanFactory beanFactory;private sta…

macad.common解析properties,evaluator

1.properties using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices;// 将 ComVisible 设置为 false 使得此程序集中的类型对 COM 组件不可见。 // 如果需要从 COM 访问此程序集中的类型&#xff0c;请将 ComVisible 属性设…

算法:带权重随机算法

算法思想&#xff1a;对象权重 / 所有对象权重总和即每个对象相对应的概率 public static void main(String[] args) throws IOException {//初始化每个人的权重//1.从文件中导入数据到集合BufferedReader br new BufferedReader(new FileReader("D:\\zzz.txt"));//…

TCP流量控制+拥塞控制

流量控制&#xff1a; 目标&#xff1a;流量控制主要解决的是发送方和接收方之间处理能力的不匹配问题。它的目的是确保发送方不会发送数据过快&#xff0c;以至于接收方无法及时接收并处理这些数据&#xff0c;从而避免数据包在网络中堆积和丢失。实现方式&#xff1a;在TCP协…

【.NET Core】深入理解async 和 await 理解

【.NET Core】深入理解async 和 await 理解 文章目录 【.NET Core】深入理解async 和 await 理解一、概述二、async异步执行机制理解三、async与await应用3.1 async与await简单应用3.2 带有返回值async与await应用 四、async和await中常见问题总结4.1 当方法用async标识时&…

MySql5.7之ERROR 1045 (28000)问题处理

MySql5.7之ERROR 1045 (28000)问题处理 文章目录 MySql5.7之ERROR 1045 (28000)问题处理1. ERROR 1045 (28000)问题2.问题原因3. 解决方法(重置密码)1. 修改my.ini配置2. 修改密码3. 刷新权限4. 再次修改my.ini配置 1. ERROR 1045 (28000)问题 时隔多日连接MySQL时出现了"…

7条策略,提升可视化大屏的科技感,值得收藏。

以下是从设计角度上提升科技感的几条建议&#xff1a; 使用现代化的字体&#xff1a; 选择现代化的字体能够让大屏幕看起来更加科技感。比如&#xff0c;Sans-serif字体、Roboto字体、Lato字体等都是现代化的字体。 设计简洁、清晰的图表&#xff1a; 图表是可视化大屏设计中…

端口号被占用怎么解决

1、快捷键"winR"打开运行&#xff0c;在其中输入"cmd"命令&#xff0c;回车键打开命令提示符。 2、进入窗口后&#xff0c;输入"netstat -ano"命令&#xff0c;可以用来查看所有窗口被占用的情况。 比如端口号为7680的端口被占用了&#xff0c…

id生成相关工具类

目录 1. ID生成器工具类 -- IdUtils 2. 唯一识别码生成 -- UUID 1. ID生成器工具类 -- IdUtils /*** ID生成器工具类* */ public class IdUtils {/*** 获取随机UUID* * return 随机UUID*/public static String randomUUID(){return UUID.randomUUID().toString();}/*** 简…

一次失败的面试经历:我只想找个工作,你却用面试题羞辱我

金三银四就要来了&#xff0c;即将又是一波求职月&#xff0c;面对跳槽的高峰期&#xff0c;很多软件测试人员都希望能拿一个满意的高薪offer&#xff0c;但是随着招聘职位的不断增多&#xff0c;面试的难度也随之加大&#xff0c;而面试官更是会择优录取 小王最近为面试已经焦…

Docker 数据卷

Docker 数据卷 一、介绍二、数据卷的使用1 添加数据卷2 只读权限数据卷 一、介绍 数据卷就是目录或文件&#xff0c;用来与宿主机/容器共享数据的。 数据卷的生命周期一直持续到没有容器使用它为止。 二、数据卷的使用 1 添加数据卷 运行一个centos容器是直接添加 docker …