对于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/

10-12 01:26