Удаление временных таблиц из Apache SQL Spark

У меня registertemptable в Apache Spark, используя Zeppelin ниже:

val hvacText = sc.textFile("...")

case class Hvac(date: String, time: String, targettemp: Integer, actualtemp: Integer, buildingID: String)

val hvac = hvacText.map(s => s.split(",")).filter(s => s(0) != "Date").map(
    s => Hvac(s(0), 
            s(1),
            s(2).toInt,
            s(3).toInt,
            s(6))).toDF()

hvac.registerTempTable("hvac")

После того, как я выполнил свои запросы с этой временной таблицей, как ее удалить?

Я проверил все документы, и кажется, что я ничего не получаю.

Любые указания?

Ответ 1

Искра 2.x

Для временных просмотров вы можете использовать Catalog.dropTempView:

spark.catalog.dropTempView("df")

Для глобальных просмотров вы можете использовать Catalog.dropGlobalTempView:

spark.catalog.dropGlobalTempView("df")

Оба метода безопасны для вызова, если вид не существует, и поскольку Spark 2.1 возвращает логическое значение, указывающее, будет ли операция успешной.

Искра 1.x

Вы можете использовать SQLContext.dropTempTable:

scala.util.Try(sqlContext.dropTempTable("df"))

Он может по-прежнему использоваться в Spark 2.0, но делегирует обработку на Catalog.dropTempView и безопасен в использовании, если таблица не существует.

Ответ 2

в новой версии (2.0 и последней) искры. следует использовать: createOrReplaceTempView вместо registerTempTable (лишенный) и соответствующий метод освобождения: dropTempView

spark.catalog.dropTempView("temp_view_name") //drops the table

Ответ 4

Вы можете использовать sql drop table/view, чтобы удалить его, как показано ниже

spark.sql("drop view hvac");