Home > Net >  DROP Multiple Tables in Database using Databricks
DROP Multiple Tables in Database using Databricks

Time:08-24

I am trying to drop multiple tables in databrick scala using the following command

select 'DROP TABLE '   tableName from ABC where tableName LIKE 'in%'

Error results saying

Error in SQL statement: AnalysisException: Table or view not found: ABC

However the ABC database is present

Thank you

CodePudding user response:

No, it doesn't work this way... You need to use SHOW TABLES IN ... LIKE ... in combination with the explicit deletes. Something like this (in Python):

db_name = "ABC"
pattern = "in%"
tables = spark.sql(f"SHOW TABLES IN {db_name} LIKE '{pattern}'")
for row in tables.collect():
  spark.sql(f"DROP TABLE {db_name}.{row[1]}

CodePudding user response:

I found the following way in scala

val dbName="ABC"
val df = spark.sql(s"""show tables from """  dbName)
df.createOrReplaceTempView("temp_tables")
val temp_tables = spark.sql("""select tableName from temp_tables where tableName like 'in%' """)

temp_tables.collect().foreach(row => println("DROP TABLE "   dbName   "."  row.toString().replace("[", "").replace("]", "")))

  • Related