我有 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")
在我用这个临时表完成我的查询后,我该如何删除它?
我检查了所有文档,似乎我无处可去。
有什么指导吗?
最佳答案
Spark 2.x
对于临时 View ,您可以使用 Catalog.dropTempView
:
spark.catalog.dropTempView("df")
对于全局 View ,您可以使用
Catalog.dropGlobalTempView
:spark.catalog.dropGlobalTempView("df")
如果 View 不存在,这两种方法都可以安全调用,并且从 Spark 2.1 开始,返回 bool 值,指示操作是否成功。
Spark 1.x
您可以使用
SQLContext.dropTempTable
:scala.util.Try(sqlContext.dropTempTable("df"))
它仍然可以在 Spark 2.0 中使用,但将处理委托(delegate)给
Catalog.dropTempView
如果表不存在,则可以安全使用。
关于scala - 从 Apache SQL Spark 中删除临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376066/