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
.)