对于spark的RDD对象,这很简单,因为它公开了getStorageLevel方法,但是DF似乎没有公开任何类似的东西。任何人?
最佳答案
您可以使用Spark 2中随附的Catalog (org.apache.spark.sql.catalog.Catalog)
来检查是否缓存了DataFrame的天气。
代码示例:
val sparkSession = SparkSession.builder.
master("local")
.appName("example")
.getOrCreate()
val df = sparkSession.read.csv("src/main/resources/sales.csv")
df.createTempView("sales")
//interacting with catalog
val catalog = sparkSession.catalog
//print the databases
catalog.listDatabases().select("name").show()
// print all the tables
catalog.listTables().select("name").show()
// is cached
println(catalog.isCached("sales"))
df.cache()
println(catalog.isCached("sales"))
使用上面的代码,您可以列出所有表并检查是否缓存了表。
您可以查看工作代码示例here
关于apache-spark - 如何检查DataFrame之前是否已被缓存/持久化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41238986/