Spark缓存持久化终极版

发布时间:2026/8/25 10:55:04

Spark缓存持久化终极版
以后看到 DataFrame3 秒就能决定用哪种绝不踩坑。一、终极选择口诀小且多次用 → cache大且多次用 → 写临时表超长链 / 防 OOM → checkpoint只用一次 → 啥都不用二、详细判断标准1. 用 .cache() 的场景满足 全部 条件过滤后数据 20GB 或 远小于资源内存同一个 DF 要 被调用 2 次以上后面有 join /union/ 多次 count /show集群内存不紧张血缘链不长不会出现递归计算优点最快、最简单风险太大必 OOM不断血缘链# 1. 加载并缓存小表dfspark.read.parquet(small_data).cache()# 2. 多次使用df.filter(...).count()df.join(...)df.groupBy(...).count()# 3. 使用完释放内存重要df.unpersist()# 主动清理缓存释放内存2. 用 写临时表方案 A 的场景满足 任意一条 就用它过滤后数据 20GB50GB担心 OOM、想要绝对稳定任务要跑很久不想中途重算需要调试、想看中间数据要被多个段落、多个 job 重复使用优点永不爆内存、可断点续跑、可查中间表缺点多一次 IO 写入但换来超级稳# 1. 写入临时表磁盘存储df.write.saveAsTable(temp_novel_data)# 2. 直接读表使用多次用都稳dfspark.read.table(temp_novel_data)# 后续任意计算df.groupBy(...).count()# 清理临时表spark.sql(DROP TABLE IF EXISTS temp_novel_data)3. 用 .persist(xxx) 的场景想缓存但不想占太多内存数据中等不想写表又怕 cache 爆精细控制缓存级别内存 磁盘、只磁盘等一般新手不用刻意记直接用 cache 或临时表即可。核心依然不断血缘不能根治 OOM纯内存默认cacheMEMORY_ONLY内存磁盘推荐防OOMMEMORY_AND_DISK纯磁盘DISK_ONLYfrompyspark.storagelevelimportStorageLevel# 内存磁盘序列化最常用、最稳dfdf.persist(StorageLevel.MEMORY_AND_DISK)# 多次使用df.show()df.count()# 清理df.unpersist()4. 用 checkpoint 的场景核心防 OOM、断血缘Checkpoint 本质就是把整个 DF 全量落盘写一遍磁盘开销 一次全量数据的读写 IO 一次 Job 计算CPU 微增、内存几乎不增、磁盘 IO 明显增加但换来血缘截断、杜绝 OOM、任务不崩满足 任意一条 必须用计算链路极长多次 join/groupBy/ 窗口 / 迭代出现过 OOM 报错尤其是 Driver 栈溢出机器学习 / 迭代计算循环反复使用同一个 DF需要彻底切断血缘依赖释放内存数据不需要反复调试只需要作为中间断点优点唯一能斩断血缘、根治长链 OOM缺点需要指定目录写入磁盘比 cache 慢和 cache 区别cache 存数据checkpoint 断血缘链条越长 → 构建计划越耗内存 → Driver/Executor 直接 OOM# 1. 设置 checkpoint 目录本地用 /tmp/...集群用 HDFS 路径spark.sparkContext.setCheckpointDir(hdfs:///user/spark/checkpoint)# 2. 长链路后执行断链防OOM核心dfdf.checkpoint(eagerTrue)# 后续使用血缘已断绝对不爆df.groupBy(...).count()# 第一次Actiondf.count()# 第二次Actiondf.show()# 第三次Actiondf.join()# 第三次Action# Python 清理目录importshutil shutil.rmtree(/tmp/spark-checkpoints,ignore_errorsTrue)5. 啥都不用直接裸奔DF 只使用一次后面直接 write 保存结果。数据极大连临时表都不写这种情况 Spark 流水线串行最省资源。三、秒选情况选择核心作用小表、多次用cache加速计算纯内存最简单中等表、怕内存爆、想更稳persist (内存 磁盘)可控缓存兼顾速度与稳定性大表、多次用写临时表稳定、不爆内存长链 / 迭代 / 防 OOMcheckpoint斩断血缘根治 OOM只用一次不缓存省资源怕 OOM、要稳定写临时表 /checkpoint保证任务不崩调试、看中间数据写临时表可查询、可回溯四、最关键一句话总结cache/persist 提速不断链 → 不治 OOM临时表 稳定、大数据专用checkpoint 断血缘、防崩溃 → 专治 OOM

相关新闻

AI项目ROI评估实战指南:从成本收益拆解到价值验证

AI项目ROI评估实战指南:从成本收益拆解到价值验证

2026/8/25 10:55:04

1. 从“AI梦男”到“AI实干家”:为什么ROI评估是项目的第一道防线最近两年,AI项目在企业里火得一塌糊涂。但不知道你有没有遇到过这样的场景:一位充满激情的领导,在一次行业峰会后,带着“AI将颠覆一切”的兴奋感回到公…

深入解析Guava Lists.partition:Java集合高效分批处理的原理与实践

深入解析Guava Lists.partition:Java集合高效分批处理的原理与实践

2026/8/25 10:55:04

1. 项目概述:为什么需要集合分组?在Java开发中,处理集合数据是家常便饭。很多时候,我们会遇到一个看似简单却容易让人头疼的场景:你有一个包含成百上千个元素的列表,现在需要将它们按固定大小分成若干个小批…

FastAPI Guard 快速开始教程:5分钟安装并启用你的第一个安全中间件

FastAPI Guard 快速开始教程:5分钟安装并启用你的第一个安全中间件

2026/8/25 10:45:03

FastAPI Guard 快速开始教程:5分钟安装并启用你的第一个安全中间件 【免费下载链接】fastapi-guard A security library for FastAPI that provides middleware to control IPs, log requests, detect penetration attempts, honeypot setup, behavioural analysis,…

Python标准库:开箱即用的生产级工具箱与工程实践指南

Python标准库:开箱即用的生产级工具箱与工程实践指南

2026/8/25 11:45:06

1. 什么是Python标准库:不是“第三方”,而是你装完Python就自带的“出厂配置” 很多人第一次听说“Python标准库”,下意识会把它和pip install安装的requests、numpy、pandas混为一谈——这其实是个根本性误解。Python标准库(Pyt…

TVA-World生成式具身智能:概念、原理、应用(1)

TVA-World生成式具身智能:概念、原理、应用(1)

2026/8/25 11:45:06

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习(DRL)、卷积神…

从像素比对到AI赋能:构建高效图片测试工具链的工程实践

从像素比对到AI赋能:构建高效图片测试工具链的工程实践

2026/8/25 11:45:06

1. 从“肉眼比对”到“像素级洞察”:为什么测试工程师需要图片测试工具如果你是一名测试工程师,尤其是负责UI、视觉回归或者涉及图像内容验证的测试,下面这个场景你一定不陌生:产品经理拿着设计稿,指着屏幕说“这个按钮…

Google Play结算库集成避坑指南:从环境配置到服务器验证全流程解析

Google Play结算库集成避坑指南:从环境配置到服务器验证全流程解析

2026/8/25 11:45:06

1. 从一次失败的支付上线说起 去年,我们团队负责一个面向海外市场的订阅制App,核心功能就是应用内购买。当时为了赶进度,我们选择了Google Play结算库(Google Play Billing Library)进行集成。整个开发过程看似顺利&a…

SpringAI集成RAG实操(postgresql+pgvector)上(环境安装)

SpringAI集成RAG实操(postgresql+pgvector)上(环境安装)

2026/8/25 11:45:06

1、安装postgresql软件下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads选择合适的版本,我下载的是windows64位15.19的版本,下载完成后完成安装。安装过程中需要设置密码,记得保存好密码&#xff…

COMPASS框架:构建可控、合规、可信的负责任AI代理系统

COMPASS框架:构建可控、合规、可信的负责任AI代理系统

2026/8/25 11:35:05

1. 项目概述:当AI需要“指南针”——COMPASS框架的诞生在AI代理(Agent)技术井喷的今天,我们见证了无数能够自主执行任务、做出决策的智能体。从自动化客服到复杂的供应链优化,AI代理正以前所未有的深度融入业务流程。然…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…