Spark数据倾斜解决方案五:对倾斜key采样后单独Join(包含完整案例代码)

news/2024/12/2 22:59:21/

倾斜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都分布比较均匀,那么采用这个解


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

相关文章

爱普生携手华锐娱乐以科技赋能娱乐 打造国际IP主题体验中心

2021年5月14日,爱普生(中国)有限公司与华锐娱乐在北京曼联梦剧场进行了战略合作签约仪式。作为双方合作的重要部分,爱普生将为华锐娱乐旗下多个国际顶级IP主题文化和娱乐体验中心提供设备支持和创新解决方案,为广大的消…

OMV安装CUPS共享惠普打印机为网络打印机

sudo nano /etc/apt/sources.list 注释掉原来的内容,加入以下国内源: deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free #deb-src http://mirrors.ustc.edu.cn/debian buster main contrib non-freedeb http://mirrors.ustc.edu.cn/…

《汉字英雄》第二季即将开播 步步高千万级冠名彰显营销价值

由爱奇艺、河南卫视联手打造的大型汉字趣味节目《汉字英雄》第二季即将于2014年1月17日完美回归,经典汉字趣味节目即将再次重磅来袭。国内知名教育电子产品巨头“步步高教育电子”投入数千万独家冠名《汉字英雄》第二季,彰显网台联动综艺节目独一无二的营…

步步高电子词典修复按键问题和下载软件

步步高电子词典修复按键问题和下载软件 下载地址和需要的工具 步步高官网 资料下载 - 步步高下载中心 (eebbk.com) http://down.eebbk.com/ 步步高学习资料下载地址 天际边工作室 (ysepan.com) http://wstjb.ysepan.com/ 需要工具 按键修复导电布胶 镊子 梅花螺丝刀 usb转ttl F…

《舌尖上的中国》经典语录

文章目录 视频地址诗词 旁白美味描述类 旁白美味升华类 旁白 视频地址 央视官网第1-3季: https://tv.cctv.com/2017/01/19/VIDAtIyRXSWBaJGZ1itGdZFE170119.shtml http://tv.cctv.com/2013/01/18/VIDA1358504868261125.shtml http://jishi.cctv.com/special/shejia…

Unity3D:自定义 Editor 工具

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 使用自定义 Editor 工具 从 Scene 视图中可以访问使用工具模式 API 创建的自定义工具。 您可以通过以下方式来访问自定义工具: 单击场景视图工具工具条叠加中的可用自…

docker安装php的FFI扩展

1.安装libffi apt-get install libffi-dev 2.开启ffi扩展 a.在 php.ini 中去掉 extensionffi 前面的 ; b.ffi.enabletrue

谷粒商城p46-配置网关路由与路径重写

软件 : vscode idea 服务: renren-fast,gulimall-product,gulimall-gateway、nacos 前提条件: gateway、renren-fast已经注册到nacos 注意: 1、renren-fast单独注入nacos依赖,不要注入common…