2017-07-20 1 views
0

J'ai une table de ruche externe sur un fichier de parquet. CREATE TABLE EXTERNE parquet_test COMME avro_test STOCKED AS PARQUET LOCATION 'hdfs: // myParquetFilesPath'; Je veux obtenir le nombre de tables en utilisant un script shell.Requête Hive dans Shell Script

J'ai essayé avec commande suivante

myVar =$(hive -S -e " select count(*) from parquet_test;") 
echo $myVar 

Ajouté S pour lancer la ruche en mode silencieux encore que je reçois carte entière et réduire log compte dans la variable myVar. Comment obtenir seulement compte.

Je n'ai accès à aucun fichier de configuration pour activer ou désactiver le niveau de journalisation. Est-ce qu'il y a un autre moyen?

Répondre

0

Enfin trouvé un travail autour. Tout d'abord vider le résultat de la requête dans un fichier dans HDFS puis lire la réponse du fichier. Le fichier contient uniquement le résultat de la requête.

(hive -S -e " INSERT OVERWRITE LOCAL DIRECTORY '/home/test/result/' 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select count(*) from parquet_test;") 

lire ensuite le fichier dans une variable

Count var=$(hdfs dfs -tail /home/test/result/) 
echo $var 

Merci

-1
myVar=$(eval "hive -S -e 'select count(*) from parquet_test;' ") 

echo $myVar 
+1

Pouvez-vous préciser la réponse? Juste donner une réponse fournit une solution mais empêche un apprentissage approprié. :-) –

+0

Ceci ne fournit pas de réponse à la question. Une fois que vous avez suffisamment [réputation] (https://stackoverflow.com/help/whats-reputation) vous pourrez [commenter n'importe quel article] (https://stackoverflow.com/help/privileges/comment); Au lieu de cela, [fournissez des réponses qui ne nécessitent pas de précisions de la part du demandeur] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- je-fais-à la place). - [À revoir] (/ review/low-quality-posts/17482841) – Mayur

+0

@Mayur Non, ce n'est même pas un commentaire. C'est juste du code. Mais si cela a été élaboré un peu comme suggéré par da39a3ee, cela pourrait être une réponse. Même un bon ;-) – TobiMcNamobi