Simply put, an External Table is a table built directly on top of a folder within a data source. This means that the data is not hidden away in some proprietary SQL format. Instead, the data is completely accessible to outside systems in its native format. The main reason for this is that it gives us the ability to create “live” queries on top of text data sources. Every time a query is executed against the table, the query is run against the live data in the folder. This means that we don’t have to run ETL jobs to load data into the table. Instead, all we need to do is put the structured files in the folder and the queries will automatically surface the new data.
Each language has its own way of doing things, but they all use the Hive metastore under the covers.