Je sais que vous pouvez obtenir les noms de colonne d'une table via l'astuce suivante dans Hive:
Hive> set Hive.cli.print.header=true;
Hive> select * from tablename;
Est-il également possible de seulement obtenir les noms de colonne de la table?
Je n'aime pas avoir à changer un réglage pour quelque chose dont je n'ai besoin qu'une fois.
Ma solution actuelle est la suivante:
Hive> set Hive.cli.print.header=true;
Hive> select * from tablename;
Hive> set Hive.cli.print.header=false;
Cela semble trop verbeux et contre le principe DRY.
Si vous voulez simplement voir les noms de colonne, cette ligne devrait le fournir sans modifier aucun paramètre:
describe database.tablename;
Cependant, si cela ne fonctionne pas pour votre version de Hive, ce code le fournira, mais votre base de données par défaut sera désormais la base de données que vous utilisez:
use database;
describe tablename;
vous pouvez aussi faire show columns in $table
ou voir Hive, comment puis-je récupérer toutes les colonnes des tables de la base de données pour accéder aux métadonnées Hive
utilisation desc tablename
de Hive CLI ou beeline pour obtenir tous les noms de colonnes. Si vous voulez les noms de colonne dans un fichier, exécutez la commande ci-dessous à partir du shell.
$ Hive -e 'desc dbname.tablename;' > ~/columnnames.txt
où dbname
est le nom de la base de données Hive dans laquelle réside votre table. Vous pouvez trouver le fichier nom_colonne.txt dans votre répertoire racine.
$cd ~
$ls