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 依赖链,持久化仅缓存数据,保留依赖链

浙公网安备 33010602011771号