J'ai registertemptable
dans Apache Spark
en utilisant Zeppelin
ci-dessous:
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")
Après avoir terminé mes requêtes avec cette table temporaire, comment la supprimer?
J'ai vérifié tous les documents et il semble que je ne sois nulle part.
Des conseils?
Spark 2.x
Pour les vues temporaires, vous pouvez utiliser Catalog.dropTempView
:
spark.catalog.dropTempView("df")
Pour les vues globales, vous pouvez utiliser Catalog.dropGlobalTempView
:
spark.catalog.dropGlobalTempView("df")
Les deux méthodes peuvent être appelées en toute sécurité si la vue n'existe pas et, depuis Spark 2.1, retourne un booléen indiquant si l'opération réussit.
Spark 1.x
Vous pouvez utiliser SQLContext.dropTempTable
:
scala.util.Try(sqlContext.dropTempTable("df"))
Il peut toujours être utilisé dans Spark 2.0, mais délègue le traitement à Catalog.dropTempView
et est sûr à utiliser si la table n'existe pas.
dans le nouveau ver (2.0 et dernier) de spark. il faut utiliser: createOrReplaceTempView
à la place de registerTempTable
(obsolète) et la méthode correspondante pour désallouer est: dropTempView
spark.catalog.dropTempView("temp_view_name") //drops the table
Si vous souhaitez supprimer votre table temporaire sur zeppelin, essayez comme ceci.
sqlc.dropTempTable("hvac")
ou
%sql DROP VIEW hvac
Et vous pouvez obtenir les informations dont vous avez besoin depuis spark API Docs ( http://spark.Apache.org/docs/latest/api/scala/index.html#org). Apache.spark.package )