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

时间:2016-12-20 09:33:49

标签: apache-spark spark-dataframe

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

1 个答案:

答案 0 :(得分:5)

您可以使用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