一、为什么使用缓存
二、缓存函数
一、cache()
二、persist
三、缓存级别
四、释放缓存
五、什么时候缓存数据
- 当某个RDD被使用多次的时候,建议缓存此RDD数据
- 当某个RDD来之不易,并且使用不止一次,建议缓存此RDD数据
from pyspark import SparkContext, SparkConf
import os
import re
from pyspark.storagelevel import StorageLevel
os.environ['SPARK_HOME'] = '/export/server/spark'
PYSPARK_PYTHON = "/root/anaconda3/envs/pyspark_env/bin/python"
os.environ["PYSPARK_PYTHON"] = PYSPARK_PYTHON
os.environ["PYSPARK_DRIVER_PYTHON"] = PYSPARK_PYTHON
if __name__ == '__main__':
print('PySpark RDD Program')
conf = SparkConf().setAppName("miniProject").setMaster("local[*]")
sc = SparkContext.getOrCreate(conf)
fileRDD = sc.textFile("file:///export/pyfolder1/pyspark-chapter02_3.8/data/word.txt")
fileRDD.cache()
fileRDD.persist()
print("fileRDD count:", fileRDD.count())
fileRDD.unpersist()
resultRDD2 = fileRDD.flatMap(lambda line: re.split("\s+", line)) \
.map(lambda x: (x, 1)) \
.reduceByKey(lambda a, b: a + b)
print('停止 PySpark SparkSession 对象')
sc.stop()