Scala 似乎Spark RDD';s缓存不';不起作用,因为Spark web UI上没有RDD

Scala 似乎Spark RDD';s缓存不';不起作用,因为Spark web UI上没有RDD,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,我将通过在CentOS 7上运行PythonPageRank来测试Spark的RDD缓存: spark-submit --master yarn --deploy-mode cluster /usr/spark/examples/src/main/python/pagerank.py input/testpr.txt 10 如您所见,我正在进行PageRank,因此testpr.txt和10是参数。 文件pagerank.py包含以下代码: spark=SparkSession\ 建筑商先生\

我将通过在CentOS 7上运行PythonPageRank来测试Spark的RDD缓存:

spark-submit --master yarn --deploy-mode cluster /usr/spark/examples/src/main/python/pagerank.py input/testpr.txt 10
如您所见,我正在进行PageRank,因此testpr.txt10是参数。 文件pagerank.py包含以下代码:

spark=SparkSession\
建筑商先生\
.appName(“PythonPageRank”)\
.getOrCreate()
lines=spark.read.text(sys.argv[1]).rdd.map(lambda r:r[0])
links=lines.map(lambda URL:parseneights(URL)).distinct().groupByKey().cache()
ranks=links.map(lambda url\u邻居:(url\u邻居[0],1.0))
对于范围内的迭代(int(sys.argv[2]):
contribs=links.join(秩).flatMap(
lambda url\u url\u rank:computeContribs(url\u url\u rank[1][0],url\u url\u rank[1][1]))
秩=contribs.reduceByKey(add).mapValues(lambda秩:秩*0.85+0.15)
对于列组中的(链接,列组)。collect():
打印(“%s”具有排名:%s.“%(链接,排名))
spark.stop()
如您所见,
links=lines.map(lambda url:parseneights(url)).distinct().groupByKey().cache()
包含缓存。但是,当我查看Spark UI的存储页面时,我找不到任何有关缓存的信息

这里是PageRank应用程序
,它运行良好。

这是应用程序的作业页面,操作
collect()
生成作业:

这是应用程序的阶段页面,它显示PageRank中包含许多迭代。

下面是应用程序的存储页面,其中应该包含缓存的RDD。但是,它不包含任何内容,似乎
缓存()
不起作用。


为什么在存储页面上看不到任何缓存的RDD?为什么pagerank.py中的
cache()
不起作用?希望有人能帮助我。

您可以将
spark.eventLog.logBlockUpdates.enabled true
添加到
spark defaults.conf
中,这不会使spark History服务器的存储选项卡为空