2015-09-03 13 views
5

ho registertemptable in Apache Spark utilizzando Zeppelin di seguito:Rimuovi tabelle temporanee da Apache SQL Spark

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") 

Dopo che ho fatto con le mie domande con questo tabella temporanea, come faccio a rimuoverlo?

Ho controllato tutti i documenti e sembra che non stia arrivando da nessuna parte.

Qualche consiglio?

risposta

15

Spark 2.x

Per le viste temporanee è possibile utilizzare Catalog.dropTempView:

spark.catalog.dropTempView("df") 

Per le viste globali è possibile utilizzare Catalog.dropGlobalTempView:

spark.catalog.dropGlobalTempView("df") 

Entrambi i metodi sono sicuri di chiamare se la vista non esiste e, dal momento che Spark 2.1, restituisce il valore booleano indicando se l'operazione ha esito positivo.

Spark 1.x

È possibile utilizzare SQLContext.dropTempTable:

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

Può essere ancora usato in Spark 2.0, ma i delegati di elaborazione per Catalog.dropTempView ed è sicuro da usare se la tabella non lo fa esistere.

6

nella nuova ver (2.0 e più recenti) di scintilla. si dovrebbe usare: createOrReplaceTempView al posto di registerTempTable (depricated) e relativo metodo deallocare è: dropTempView

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