By default, the DROP DATABASE (AWS | Azure | GCP) command drops the database and deletes the directory associated with the database from the file system.
Sometimes you may want to drop the database, but keep the underlying database directory intact.
Example code
You can use this example code to drop the database without dropping the underlying storage folder.
%scala
import scala.collection.JavaConverters._
import org.apache.hadoop.hive.ql.metadata.Hive
import org.apache.hadoop.hive.conf.HiveConf
import org.apache.hadoop.hive.ql.session.SessionState
val hiveConf = new HiveConf(classOf[SessionState])
sc.hadoopConfiguration.iterator().asScala.foreach { kv =>
hiveConf.set(kv.getKey, kv.getValue)
}
sc.getConf.getAll.foreach {
case (k, v) => hiveConf.set(k, v)
}
hiveConf.setBoolean("hive.cbo.enable", false)
val state = new SessionState(hiveConf)
val hive = Hive.get(state.getConf)
println(state.getConf)
hive.dropDatabase("<database-name>", false, false, true)For more information on org.apache.hadoop.hive.ql.metadata.Hive, please review the Hive documentation.