Comment passer plusieurs paramètre au script hive
employé:
Les données de la Table
Je veux extraire les enregistrements de l'année=2016 en exécutant le script hive échantillon.hql.
use octdb;
select * from '${hiveconf:table}' where year = '${hiveconf:year}';
[cloudera@quickstart ~]$ hive -hiveconf table='employee', year=2016 -f sample.hql
Mais j'obtiens l'erreur NoViableAltException(307@[]).......
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser le
--hiveconf
option deux fois:employee
; le supprimer. Il n'y a pas de table nomméeemployee,
.En faisant de la R&D trouvé la bonne réponse, ${hiveconf:table} doit définir dans le script sans ' '.
de l'échantillon.hql:-
Échantillon en cours d'exécution.hql
Journalisation initialisé à l'aide de la configuration dans le fichier:/etc/ruche/conf.dist/ruche-log4j.propriétés
OK
Durée: 4.423 secondes, Récupérés: 3 ligne(s)
Passage de variables peut également être atteint par le biais de "hivevar" avec "hiveconf".
Voici la différence:
La hiveconf espace de noms a été ajouté et (--hiveconf) doit être utilisé pour définir la Ruche des valeurs de configuration.
La hivevar espace de noms a été ajouté et (--hivevar) devrait être utilisé pour définir les variables de l'utilisateur.
À l'aide de hiveconf va aussi travailler, mais n'est pas recommandé pour la substitution des variables comme hivevar est explicitement créé à cet effet.