Python 不带SQLContext的pyspark中的clearCache
考虑到Python 不带SQLContext的pyspark中的clearCache,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,考虑到SQLContext的pySpark说“从Spark 2.0开始,它被SparkSession取代。” 如何在不使用SQLContext的情况下从内存缓存中删除所有缓存表 例如,其中spark是SparkSession,sc是sparkContext: from pyspark.sql import SQLContext SQLContext(sc, spark).clearCache() 我认为除了pyspark中的SQLContext之外,其他地方没有可用的clearCache。下面
SQLContext
的pySpark说“从Spark 2.0开始,它被SparkSession取代。”
如何在不使用SQLContext
的情况下从内存缓存中删除所有缓存表
例如,其中spark
是SparkSession
,sc
是sparkContext
:
from pyspark.sql import SQLContext
SQLContext(sc, spark).clearCache()
我认为除了pyspark中的
SQLContext
之外,其他地方没有可用的clearCache
。下面的示例使用SQLContext.getOrCreate
使用现有SparkContext实例创建实例:
SQLContext.getOrCreate(sc).clearCache()
在scala中,通过SparkSession直接实现这一点有一种更简单的方法:
spark.sharedState.cacheManager.clearCache()
如Clay所述,目录中还有一个选项:
spark.catalog.clearCache
最后一个来自Jacek Laskowski的gitbooks:
spark.sql("CLEAR CACHE").collect
参考资料:谢谢,这让我意识到从pySpark访问底层Java SparkSession可以做同样的事情您非常渴望尽可能优化代码:)我还发现
spark.catalog
似乎是SQLContext
的替代品,尽管在2.2.0中没有很好的文档记录。因此,spark.catalog.clearCache()
也会清除缓存。好的,我从我总结的文档中也发现了这一点,它主要用于与配置单元的交互、存储表信息等。做得好!