如何检查DataFrame之前是否已缓存/持久化?

Roi*_*hef 2 apache-spark spark-dataframe

对于spark的RDD对象,这是非常简单的,因为它暴露了一个getStorageLevel方法,但DF似乎没有暴露任何类似的东西.任何人?

bob*_*bob 6

您可以使用Catalog (org.apache.spark.sql.catalog.Catalog)Spark 2中的内容查看是否缓存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"))
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,您可以列出所有表格并检查表格是否被缓存的天气.

您可以在此处查看工作代码示例