持久化算子

cache

  • cache()=persist()=persist(StroageLevel.MEMROY_ONLY)

persist 可以手动的指定持久化的级别

  • persist(StorageLevel.MEMORY_ONLY)
  • MEMORY_ONLY_SER
  • MEMORY_AND_DISK
  • MEMORY_AND_DISK_SER
    • 注意:
      • 尽量避免使用DISK_ONLY级别
      • 尽量避免使用"_2"级别

cache和persist注意使用事项:

  • cache和persist的的最小单位partition,都是懒执行,需要action算子触发执行
  • 对一个RDD使用cache或者persist后,可以赋值给一个变量,下次直接使用这个变量就是使用的持久化的数据
  • cache和persist之后不能紧跟action算子
  • 当application执行完毕之后持久化的数据会被清除

checkpoint

  • 可以将数据持久化到磁盘,还可以切断RDD之间的依赖关系
  • 当lineage非常长,计算又复杂时,可以使用checkpoint对RDD进行持久化,当application执行完毕之后
  • checkpoint中的数据不会被清除
    • checkpoint 的执行流程
      • 当application有action触发执行时,job执行完毕3之后,会从后往前回溯
      • 回溯去找有哪些RDD被checkpoint做的标记
      • 回溯完成之后,重新计算checkpoint’RDD的数据,将结果写入指定的checkpoint目录中
      • 切断RDD的依赖关系
      • 优化:对RDDcheckpoint之前,最好先cache下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值