Spark Core 核心概念:RDD 持久化与缓存

知识点:
持久化原因:避免重复计算,提升性能
持久化级别:MEMORY_ONLY、MEMORY_AND_DISK、DISK_ONLY等
缓存与检查点:cache() vs checkpoint()
持久化代码实现与性能对比:

from pyspark import StorageLevel

rdd = spark.sparkContext.textFile("test.txt").flatMap(lambda line: line.split()).map(lambda word: (word, 1))

未持久化:两次count会触发两次全量计算

print(rdd.count())
print(rdd.count())

持久化:MEMORY_ONLY级别

rdd.persist(StorageLevel.MEMORY_ONLY)

第一次count触发计算,后续count直接读取内存

print(rdd.count())
print(rdd.count())

取消持久化

rdd.unpersist()
配置检查点目录,实现 RDD 检查点
易错:
cache()是persist(StorageLevel.MEMORY_ONLY)的简写
检查点会将数据写入磁盘,切断 RDD 依赖链,持久化仅缓存数据,保留依赖链

posted @ 2026-01-24 09:50  再报错就堵桥0  阅读(3)  评论(0)    收藏  举报