考虑到 pySpark 文档中对于 SQLContext
的说明:"从Spark 2.0开始,已被SparkSession取代。"
如何在不使用 SQLContext
的情况下从内存缓存中删除所有缓存的表?
例如,假设 spark
是一个 SparkSession
,sc
是一个 sparkContext
:
from pyspark.sql import SQLContext
SQLContext(sc, spark).clearCache()
考虑到 pySpark 文档中对于 SQLContext
的说明:"从Spark 2.0开始,已被SparkSession取代。"
如何在不使用 SQLContext
的情况下从内存缓存中删除所有缓存的表?
例如,假设 spark
是一个 SparkSession
,sc
是一个 sparkContext
:
from pyspark.sql import SQLContext
SQLContext(sc, spark).clearCache()
SQLContext
之外,没有其他地方可以使用clearCache
。下面的示例使用现有的SparkContext实例使用SQLContext.getOrCreate
创建一个实例:SQLContext.getOrCreate(sc).clearCache()
spark.sharedState.cacheManager.clearCache()
spark.catalog.clearCache
来自Jacek Laskowski的gitbooks中的最后一个:
spark.sql("CLEAR CACHE").collect
spark._jsparkSession.sharedState().cacheManager().clearCache()
。 - Clayspark.catalog
似乎是SQLContext
的替代品,尽管在2.2.0版本中没有很好的文档说明。因此,spark.catalog.clearCache()
也可以清除缓存。 - Clay