Spark RDD弹性分布式数据集:
弹性1:RDD自动地进行内存和磁盘数据存储的切换
弹性2:基于Lineage的高效容错
弹性3:Task若失败,会自动进行特定次数的重试
弹性4:Stage若失败,会自动进行容错,只进行失败分片的重新计算
弹性5:repartition
做缓存的几个时机:
1.计算过程特别耗时
2.计算链条很长
3.shuffle之后
4.checkpoint
5.shuffle之前(框架默认帮助我们持久化)
cache()
之后不要立即接算子,否则会重新触发计算。
cache()是persist的特殊的情况,只能存在内存,只有一副副本。
persist可以内存和硬盘,副本可以不只一副。