scala - 从 Apache SQL Spark 中删除临时表

标签 scala apache-spark apache-spark-sql apache-zeppelin

我有 registertemptableApache 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/

相关文章:

sql - 将从文本文件加载的列表传递到 Spark SQL 中的 SQL 查询

scala - Spark Streaming StreamingContext.start() - 启动接收器时出错 0

java - 以尽可能少的更改动态地(在运行时)更改持久层

python - 如何用Python实现FPGrowth算法?

apache-spark - Spark SQL 替换 MySQL 的 GROUP_CONCAT 聚合函数

scala - 这是 maven scala 插件的最新版本吗?

java - 如何将 Apache Spark 与 Spring MVC Web 应用程序集成以实现交互式用户 session

python - 如何获得在 Spark 1.5.2 中使用 HiveContext 制作的 PySpark DataFrame?

apache-spark - 我不明白为什么最后阶段没有任何保存或追加数据操作

apache-spark - Spark SQL 中联接大表的优化方式是什么