Aak*_*asu 2 apache-spark apache-spark-sql pyspark pyspark-sql
我正在尝试dropTempTable()在各个临时表的使用结束后使用(以释放内存用于下一次计算)。
较新的 Spark Session 不需要sqlContext,因此,我对如何使用该功能感到困惑。
1)尝试过,我用来注册临时表的同一个DF -
DF.dropTempTable('xyz')
Run Code Online (Sandbox Code Playgroud)
没用。
2) 也尝试了以下方法,因为 spark 在内部sqlContext也与 一起调用sparkContext,但没有用 -
spark.dropTempTable('xyz')
Run Code Online (Sandbox Code Playgroud)
3)试图spark.catalog下降,这也失败了-
spark.catalog.dropTempTable('xyz')
Run Code Online (Sandbox Code Playgroud)
该怎么办?互联网上的 1.6 示例在 2.3 版本中不起作用dropTempTable()。
有什么帮助吗?
对于 spark 2.0,API 是
对于临时视图
spark.catalog.dropTempView("df")
对于全局视图
spark.catalog.dropGlobalTempView("df")
从文档
抽象 def dropGlobalTempView(viewName: String): Boolean
在目录中删除具有给定视图名称的全局临时视图。如果视图之前已经缓存过,那么它也不会被缓存。
全局临时视图是跨会话的。它的生命周期是 Spark 应用程序的生命周期,即当应用程序终止时它会被自动删除。它与系统保留的数据库 global_temp 相关联,我们必须使用限定名称来引用全局临时视图,例如 SELECT * FROM global_temp.view1。
viewName 要删除的临时视图的非限定名称。
如果视图被成功删除,则返回 true,否则返回 false。
抽象 def dropTempView(viewName: String): Boolean
在目录中删除具有给定视图名称的本地临时视图。如果视图之前已经缓存过,那么它也不会被缓存。
本地临时视图是会话范围的。它的生命周期是创建它的会话的生命周期,即当会话终止时它会被自动删除。它不绑定到任何数据库,即我们不能使用 db1.view1 来引用本地临时视图。
请注意,该方法的返回类型在 Spark 2.0 中为 Unit,但在 Spark 2.1 中更改为 Boolean。
viewName 要删除的临时视图的名称。
如果视图被成功删除,则返回 true,否则返回 false。
| 归档时间: |
|
| 查看次数: |
8730 次 |
| 最近记录: |