Scala 使用Pyspark放下工作台

Scala 使用Pyspark放下工作台,scala,apache-spark,pyspark,hive,apache-spark-sql,Scala,Apache Spark,Pyspark,Hive,Apache Spark Sql,SparkSession.catalog对象有一系列与元存储交互的方法,即: ['cacheTable', “clearCache”, “createExternalTable”, “createTable”, “当前数据库”, “dropGlobalTempView”, “dropTempView”, “isCached”, “listColumns”, “列表数据库”, “列表函数”, “列表表”, “恢复分区”, “刷新路径”, “刷新表”, '注册表函数', “setCurrentDat

SparkSession.catalog
对象有一系列与元存储交互的方法,即:

['cacheTable',
“clearCache”,
“createExternalTable”,
“createTable”,
“当前数据库”,
“dropGlobalTempView”,
“dropTempView”,
“isCached”,
“listColumns”,
“列表数据库”,
“列表函数”,
“列表表”,
“恢复分区”,
“刷新路径”,
“刷新表”,
'注册表函数',
“setCurrentDatabase”,
“不可缓存”]
不幸的是,似乎没有程序化的方法删除表

实现这一点有多种方法

spark.sql(f“drop table my_table”)

spark.\u jsparkSession.sharedState().externalCatalog().dropTable(db,table,True,True)
但是,与一个简单但却缺失的dropTable方法相比,它们看起来有点黑客化


有更好的方法吗?

以上提到的方法都是最常用的方法。我没有别的感觉

但从这些我可以看到另一种方式

你可以试试这个,里面有好吃的东西(放下桌子…)

我对python不是很在行,您可以在下面的scala示例中看到,并遵循python的相同方法

package org.apache.spark.sql.hive {
import org.apache.spark.sql.hive.HiveUtils
import org.apache.spark.SparkContext
object utils {
    def dropTable(sc: SparkContext, dbName: String, tableName: String, ignoreIfNotExists: Boolean, purge: Boolean): Unit = {
      HiveUtils
          .newClientForMetadata(sc.getConf, sc.hadoopConfiguration)
          .dropTable(dbName, tableName, ignoreIfNotExists, false)
    }
  }
}
打电话的人会说

import org.apache.spark.sql.hive.utils
utils.dropTable(sc, "default", "my_table", true, true)

以上提到的方法是最常用的方法。我没有别的感觉

但从这些我可以看到另一种方式

你可以试试这个,里面有好吃的东西(放下桌子…)

我对python不是很在行,您可以在下面的scala示例中看到,并遵循python的相同方法

package org.apache.spark.sql.hive {
import org.apache.spark.sql.hive.HiveUtils
import org.apache.spark.SparkContext
object utils {
    def dropTable(sc: SparkContext, dbName: String, tableName: String, ignoreIfNotExists: Boolean, purge: Boolean): Unit = {
      HiveUtils
          .newClientForMetadata(sc.getConf, sc.hadoopConfiguration)
          .dropTable(dbName, tableName, ignoreIfNotExists, false)
    }
  }
}
打电话的人会说

import org.apache.spark.sql.hive.utils
utils.dropTable(sc, "default", "my_table", true, true)

有用吗?有用吗?