Nombre de colonnes dans la hive

Je cherche un moyen de countr le nombre de colonnes dans une table dans Hive.

Je sais que le code suivant fonctionne dans Microsoft SQL Server. Y a-t-il un équivalent Hive?

SELECT COUNT(*), FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'schema_name' AND TABLE_NAME = 'table_name' 

essaye ça

SHOW COLUMNS (FROM | IN) nom_table [(FROM | IN) nom_bdd]

Essayez ceci, il vous montrera les colonnes de votre table:

 DESCRIBE schemaName.tableName; 

vous devez vérifier si votre HIVE inclut HIVE-287 car pour les versions de HIVE qui n'incluent pas HIVE-287, vous devrez utiliser COUNT (1) à la place de COUNT (*).

Je ne connais pas un moyen de countr les colonnes directement, cependant, j'ai résolu le problème pour mes besoins indirectement via:

 echo 'table1name:, '`hive -e 'describe schemaname.table1name;' | grep -v 'col_name' | wc -l > num_columns.csv echo 'table2name:, '`hive -e 'describe schemaname.table2name;' | grep -v 'col_name' | wc -l >> num_columns.csv ... 

(J'avais besoin du bit grep -v car j'ai des en-têtes par défaut, sans cela vous obtenez un trop grand nombre de lignes dans l'étape wc -l .)