RDD的持久化和广播变量
- RDD的持久化和广播变量 推荐度:
- 相关推荐
RDD的持久化和广播变量
RDD的持久化
缓存方式:cache, persist
特点:并不是调用时立即执行,必须遇到行动算子时才会缓存。因此第一次运行速度并不会变快,只有下次执行时才会生效。
rdd.cache()
:缓存数据- DAG有向无环图会增加一个绿点
- rdd.toDebugTostring()可以查看缓存的具体信息
- 只有在shuffle后进行缓存才有意义
目前来说,spark的缓存位置和级别非常优秀,一般无需修改。缓存不会切断血缘关系,如果缓存后面的计算出错,会重新将缓存前的计算再做一遍。
RDD checkPoint检查点
将某个RDD数据落盘保存,如果检查点之后出现问题,可以从检查点开始重做,减少开销。
- 设置检查点存储路径,
sc.setCheckpointDir("ck");
rdd.checkpoint()
: 保存某个RDD的数据- 检查点会切断血缘关系,若后面计算出错,也不会把检查点之前的计算再跑一遍。
有分区器的RDD
- 只有kv类型的RDD才有分区器,单value类型的RDD没有分区器
- hashPartitioner是为了聚合计算,RangePartitioner是为了排序。
广播变量
分布式共享只读变量,向所有工作节点executor发送一个只读变量。每个executor可以有多个Task, 由于Task是计算的基本单位,本来需要将共享的变量向每个节点都发送一份。 因此可以将变量直接发送给executor,减少通信压力。
- sc.broadcast(变量); 广播该变量给executor
- broadcast.getValue(); 获取广播变量
最新文章
- Windows 10具有秘密的网络数据包嗅探器
- 1688往微信小程序自营商城铺货商品采集API接口
- 污水处理系统有哪些设备
- 场景案例∣企业如何打造数智采购商城,赋能企业提速降本增效
- 深度学习——前馈神经网络(未开始)
- Java系列之 IDEA 为类 和 方法设置注解模板
- WoShop多商户直播商城系统支持自营加多商户入驻
- 【QT进阶】第十二章QT事件的使用
- 域名怎么注册?一步步教你如何注册自己的域名
- CSS 实现新拟态(Neumorphism) UI 风格
- python通用日志使用
- 上机实验四 图的最小生成树算法设计 西安石油大学数据结构
- 免费群学习网络安全
- 一文读懂RestCloud AppLink
- 【Axure高保真原型】3D饼图
- Oracle简单高效删除重复记录
- android studio新版本gradle Tasks找不到assemble