@Nishant : you should do a little homework before asking generic questions in this forum. Anyways, here's a quick link for detailed explanation on hive external tables in general - External Hive Tables
When you drop an internal table, it drops the data, and it also drops the metadata. You will no longer have access to the data
When you drop an external table, it only drops the meta data. That means hive is ignorant of that data now. It does not touch the data itself. You can now access the data and perform any operations (if needed). External tables are also preferred when you need a pit stop for your data and then dump the entire data in to a managed table for hive opertaions
Also, here's notes from another stackoverflow thread
Use EXTERNAL tables when:
- The data is also used outside of Hive. For example, the data files are read and processed by an existing program that doesn't lock the files.
- Data needs to remain in the underlying location even after a DROP TABLE. This can apply if you are pointing multiple schemas (tables or views) at a single data set or if you are iterating through various possible schemas.
- You want to use a custom location such as ASV.
- Hive should not own data and control settings, dirs, etc., you have another program or process that will do those things.
- You are not creating table based on existing table (AS SELECT).
Use INTERNAL tables when:
- The data is temporary.
- You want Hive to completely manage the lifecycle of the table and data.
You want Hive to completely manage the lifecycle of the table and data.
Hope this is helpful.