I know that you can get column names from a table via the following trick in hive:
hive> set hive.cli.print.header=true;
hive> select * from tablename;
Is it also possible to just get the column names from the table?
I dislike having to change a setting for something I only need once.
My current solution is the following:
hive> set hive.cli.print.header=true;
hive> select * from tablename;
hive> set hive.cli.print.header=false;
This seems too verbose and against the DRY-principle.
you could also do
show columns in $table
or see Hive, how do I retrieve all the database's tables columns for access to hive metadataIf you simply want to see the column names this one line should provide it without changing any settings:
However, if that doesn't work for your version of hive this code will provide it, but your default database will now be the database you are using:
use
desc tablename
from Hive CLI or beeline to get all the column names. If you want the column names in a file then run the below command from the shell.where
dbname
is the name of the Hive database where your table is residing You can find the file columnnames.txt in your root directory.