当前位置: 首页 > news >正文

学习进度 15

今天学了 Spark 的广播变量和累加器,这两个都是分布式任务中实用的小工具,解决了之前写代码时遇到的 “小数据传输慢” 和 “全局计数不准” 的问题,也算把结构化数据处理的周边实用技能补全了。之前在做表关联时,总习惯把小表直接和大表 join,后来才发现,每个 Executor 都会复制一份小表数据,数据量稍大就会浪费内存还拖慢速度;还有统计数据异常值时,用普通变量计数,最后结果总是 0,根本取不到全局统计值。今天学的这两个工具,刚好对应解决这两个问题,核心都是适配 Spark 的分布式执行逻辑。先学了广播变量,它的作用就是把小数据集一次性发送到所有 Executor 的内存中并缓存,每个 Executor 只存一份,不用反复传输,大幅减少网络开销和内存占用。用法特别简单,用spark.sparkContext.broadcast(小数据集)创建广播变量,再用.value获取里面的数据就行。实操时把之前的 “城市 - 省份” 小表做成广播变量,再和大的用户表关联,对比下来,运行时间比直接 join 快了近一半,尤其是多次使用小表时,效果更明显。踩了个小坑:一开始把大数据集做成广播变量,结果任务更卡了,查资料才知道广播变量只适合小数据(几 M 到几十 M),大数据用这个反而适得其反。然后是累加器,专门解决分布式任务中的全局计数 / 累加问题,普通变量在分布式中会因为每个 Task 独立运行,导致计数无法汇总,累加器则能把各个 Task 的结果统一汇总到 Driver 端。先试了内置累加器,用spark.sparkContext.longAccumulator("异常值统计")创建长整型累加器,在数据过滤时用acc.add(1)计数,最后直接打印acc.value就能拿到全局结果,终于解决了之前计数为 0 的问题。还试了简单的自定义累加器(虽然新手阶段用得少),核心是重写累加逻辑,了解了原理就行。这里也踩了坑:在 DataFrame 的filter里直接用累加器,结果计数不准,查了才知道要在 RDD 的算子中使用,或者结合foreach才有效。
最后把这两个工具和之前学的知识结合,做了个综合实操:处理用户消费数据时,用广播变量传递优惠规则小表,用累加器统计无效订单、异常金额的数量,再结合窗口函数做消费排名,一套流程走下来,不仅功能更完整,运行效率也比之前高了不少,还解决了之前的小痛点。

http://www.jsqmd.com/news/326650/

相关文章:

  • 2026做宣传片制作的公司哪家好?行业实力机构推荐
  • 2026杭州代理记账包含服务的公司有哪些?
  • 2026制作效果好的宣传片制作公司推荐
  • 2026杭州办理公司注册地址哪家靠谱?本地机构选择参考
  • 2026企业宣传片制作公司哪家好?行业实力机构推荐
  • 从像素到语义:React Native Text 组件在 OpenHarmony 上的渲染哲学与工程实现
  • 2026杭州办理公司注册费用哪家合理?费用明细参考
  • 基于PLC的茶叶自动烘干系统的设计与实现
  • 深入解析:rust:猜数字小游戏
  • React Native for OpenHarmony:项目目录结构与跨平台构建流程详解
  • 从一行代码到一座桥梁:React Native View 组件在 OpenHarmony 生态中的深度解析与工程实践
  • .NET Framework 3.5是什么|.NET Framework 3.5下载安装保姆级教程(2026最新)
  • 不会Agent Skills?你out了!大模型开发必备技能,从入门到实战,一篇文章搞定!
  • 分析基金情况fiddler+pyecharts
  • 分形粗糙裂隙渗流模型。 分形理论。 界面粗糙度和细节随着分形维数的增加而增加。 水在裂隙中的流...
  • 单北斗GNSS在水库变形监测中的应用与维护方案分析
  • 大模型三国志:字节激进、阿里稳健、腾讯务实,开发者如何选择自己的AI赛道?2026年编程开发必看指南
  • 导师推荐9个降AIGC网站,千笔AI帮你彻底降AI率
  • 2026淮南本地生活团购代运营公司TOP5推荐:三十六行网络淮南分公司以全域运营实力登顶
  • 【背包问题】基于GA、PSO、ACO、GWO、SMA、HBA、IHBA 7种算法来解决0-1背包问题附Matlab代码
  • Web学习之用户认证
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 4 - 实践
  • 程序猿必学!RAG系统性能提升秘籍:从-5%到+6%的数据工程魔法
  • 2025.1.31
  • Kimi AI 官网 - K2.5 上线
  • 基于Transformer的问答系统[python]-计算机毕业设计源码+LW文档
  • 基于Python的招聘数据分析及可视化[python]-计算机毕业设计源码+LW文档
  • 2026年市场热门的布袋除尘器品牌推荐榜单,除尘器花板/布袋除尘器/电磁脉冲阀/除尘器门盖,布袋除尘器产品推荐排行
  • 中石化加油卡回收怕被骗?京顺回收带你避开3大陷阱
  • 时间序列中因果推断