How do I drop Multiple tables in Impala through shell(bash) script and then finally delete the database?

The requirement is to delete impala tables from a database. Tables are recursively deleted and if all the tables are deleted, then database should be deleted.

All this has to be performed through either shell script or Java.

I would like to how to invoke impala shell from bash shell and then access impala tables?
Who is Participating?
Mark BullockQA Engineer IIICommented:
Not sure how you'll get the list of tables. Cloudera has the SHOW TABLES command.

You can run the impala shell and give it an input file containing the drop table commands like this.
impala-shell -f your_delete_tables_commands.sql

You can specify other parameters for impala-shell
-u yourusername
-d yourdatabasename
JyozealAuthor Commented:
Thanks Mark for your response.
I have slightly tweek the query to use
impala-shell -i "show tables" -d  databasename and assigned to array variable.

And using for loop i was able to traverse through the list and deleted the same.

However there was one issue, The first table didnt get deleted due to impala-shell response.
So, I copied the first table name alone to a variable and deleted it separately using another delete table command outside the for loop. That saved my time.

Thanks for your help!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.