Spark-RDD编程之持久化操作

默认情况下,对于每一个经过一系列转换操作后得到的RDD,当在其上多次提交执行操作时,将RDD将会被重复计算。

scala>val rdd=rdd1.map(func1).map(func2).map(func3).collect

scala>rdd1.count

在执行第一条语句时,rdd已经通过rdd1和三个map操作创建完成;当执行第二条语句时,rdd会被重复创建,即再次执行三个map操作。为了避免重复计算生成,可以使用持久化操作。Spark的持久化操作支持在内存、磁盘上保存数据集或在集群间复制数据集,以便在后续查询同一RDD时能够快速访问。

Spark中的持久化操作有cache、persist、checkpoint。其中persist是将数据持久化到磁盘或内存;cache可视为persist的特例,仅将数据持久化到内存;checkpoint将数据持久化到磁盘上,与persist将数据持久化到硬盘上类似,但是checkpoint不再保存RDD间的依赖关系。

猜你喜欢

转载自blog.csdn.net/mmake1994/article/details/79794661