Spark数据倾斜解决方案五:对倾斜key采样后单独Join

news/2024/11/15 7:34:02/

倾斜key采样后单独Join方案分析

数据倾斜的时候如果能把Join的方式去除,在Mapper端就能完成Join的操作,这是最好的,但有一个前提条件:要进行Join的RDD,其中有一个RDD的数据比较少。而在实际的生产环境下,有时不具备这样的前提条件,如果两个RDD的数据都比较多,我们将尝试采取进一步的做法来解决这个问题。

首先我们谈采样。采样是有一个数据的全量,假如有100亿条数据,采取一个规则来选取100亿条数据中的一部分数据,如5%、10%、15%,采样通常不可能超过30%的数据。采样算法的优劣决定了采样的效果。所谓采样的效果,即我们采样的结果能否代表全局的数据(100亿条数据)。在Spark中,我们可以直接采用采样算法Sample。采样算法对解决数据倾斜的作用:数据产生数据倾斜是由于某个Key或者某几个Key,数据的Value特别多,进行Shuffle的时候,Key是进行数据分类的依据。如果能够精准地找出是哪个Key或者哪几个Key导致了数据倾斜,这是解决问题的第一步:找出谁导致数据倾斜,就可以进行分而治之。

适用场景

两个RDD/Hive表进行join的时候,如果数据量都比较大,无法采用“解决方案五”,那么此时可以看一下两个RDD/Hive表中的key分布情况。如果出现数据倾斜,是因为其中某一个RDD/Hive表中的少数几个key的数据量过大,而另一个RDD/Hive表中的所有key都分布比较均匀,那么采用这个解决方案是比较合适的。

实现思路

对包含少数几个数据量过大的key的那个RDD,通过sample算子采样出一份样本来&#x


http://www.ppmy.cn/news/311237.html

相关文章

i7 1195g7和r7 5800h选哪个好

i7-1195G7处理器,采用10nm SuperFin工艺,基于Willow Cove架构的四核八线程CPU,最高 TDP 达 28W,从命名数字来看定位高于原有旗舰型号i7-1185G7,单核心睿频可达5GHz,全核心睿频可达4.6GHz。选i7 1195g7还是r…

制作Retropie系统树莓派掌机(三)

制作Retropie系统树莓派掌机(三) 前面介绍了如何制作外壳和按键。这一节再聊如何组装和接线。 1.组装 安装屏幕和主板 先把屏和主板放上去,原外壳上留好限位卡扣或孔。再把电池(2节18650)和升压板放上去固定。 这里…

iCade Mobile:让iPhone变身掌上游戏机

iPhone的触摸屏并不能让所有类型的游戏都有优秀的体验,没有物理按键会让一些经典游戏体验不佳。为了解决这些问题,开发者们都选用了虚拟摇杆,但没有改善多少。后来虽然有了触控反馈,但仍然做不到物理按键带来的优秀的反馈感觉&…

[Java 实现水平分库 1]

目录 前言: 讲解: 第一种方式的水平分库: 注意 分库后需要考虑数据一致性和事务处理等问题: Mysql水平分库数据查询合并: 代码讲解: MySQL水平分库插入数据: 前言: 平时开发中,可能会遇见数据量越来越大的情况,一般数据量过千万级别,就必须考虑分库分表…

手机处理器哪个好 智能手机处理器进化知识

随着智能手机越来越普及,消费者在选购手机的时候也越来越理性化,除了关心价格和外观之外,手机的性能也成为了人们最关心的因素,大家都知道, 处理器是影响手机性能的最关键的因素,像德州仪器、高通、英伟达以…

科沃斯扫地机器人哪个型号最实用_扫地机器人哪个型号好_智能扫地机功能-科沃斯机器人官网-科沃斯机器人官网...

小科为大家整理了每款扫地机器人的优势及劣势,大家对号入座~ LDS规划类 功能特点: 1、清扫时按房间逐一覆盖,不反复进出统一房间; 2、动态重定位,被搬动后也能知道自己在哪里; 3、掌上虚拟墙,无…

unity和虚幻哪个更好

这取决于你的需求和目标。 Unity 是一个通用的游戏引擎,能够用于制作各种不同类型的游戏,包括 2D 和 3D 游戏。它具有广泛的社区和资源,并提供了丰富的功能和工具,帮助游戏开发者快速创建游戏。 虚幻引擎(Unreal Engine)是一个专为…

【 图像分割 2022 ECCV】CP2

【 图像分割 2022 ECCV】CP2 论文题目:CP2: Copy-Paste Contrastive Pretraining for Semantic Segmentation 中文题目:CP2:语义分割的复制粘贴对比预训练 论文链接:https://arxiv.org/abs/2203.11709 论文代码:https://github.co…