2017-10-09 12 views

Répondre

1

Vous devez utiliser l'option --hiveconf deux fois:

hive --hiveconf table=employee --hiveconf year=2016 -f sample.hql 
+0

Merci pour la solutio n mais je reçois toujours la même erreur. –

+0

Erreur: NoViableAltException (307 @ []) ÉCHEC: ParseException line 2:14 ne peut pas reconnaître l'entrée près de '' employee '' ', où' 'year' dans join source WARN: La classe de méthode org.apache.commons. logging.impl.SLF4JLogFactory # release() a été appelé. WARN: S'il vous plaît voir http://www.slf4j.org/codes.html#release pour une explication. –

+0

Vous utilisez toujours une virgule après 'employee'; retirez-le. Il n'y a pas de table nommée 'employee '. – chepner

0

En faisant R & D a trouvé la bonne réponse, $ {hiveconf: table} devrait définir dans le script sans ''. sample.hql: -

use ${hiveconf:database}; 

    select * from ${hiveconf:table} where year = ${hiveconf:year}; 

Courir sample.hql

[[email protected] shell]$ hive -hiveconf database=octdb -hiveconf table=employee -hiveconf year=2016 -f sample.hql 

Logging initialisée configuration à l'aide dans le fichier: /etc/hive/conf.dist/hive-log4j.properties OK

Time taken: 1.484 seconds 
OK 
1  A  2016 
2  B  2016 
4  D  2016 

Durée de prise de vue: 4.423 secondes, récupérée: 3 rangée (s)