Boucle à l'aide de Hiveql

Je suis en train de fusionner les 2 jeux de données, disons A et B. L'ensemble de données d'Une variable "Drapeau" qui prend 2 valeurs. Plutôt que de baie vitrée, de la fusion de ces deux données ensemble, j'ai essayer de fusionner les 2 jeux de données basés sur le "drapeau" à la variable.

La fusion de code est le suivant:

create table new_data as
select a.*,b.y
from A as a left join B as b
on a.x=b.x

Depuis que je suis en cours d'exécution de la Ruche de code via la CLI, j'appelle cela par le biais de la commande suivante

hive -f new_data.hql

La boucle de la partie du code que je vais appeler pour fusionner les données basées sur le "Drapeau" de la variable est la suivante:

for flag in 1 2;
do
  hive -hivevar flag=$flag -f new_data.hql
done

J'ai mis le code ci-dessus dans un autre ".hql" fichier asn en l'appelant:

hive -f loop_data.hql

Mais c'est jeter de l'erreur.

ne peut pas reconnaître d'entrée de proximité 'pour' '' 'en'

Quelqu'un peut-il me dire où je fais erreur.

Merci!

Le code de boucle n'est pas une requête de la ruche/script. La ruche -f peut uniquement exécuter des requêtes hive. L'utilisation de la boucle dans un script shell .
Merci beaucoup pour le commentaire. Je suis en cours d'exécution de la ruche de code au moyen de mastic. Pourriez-vous nous expliquer ce qu'entendez-vous par script shell? Je suis technologiquement peu novice.
le drapeau de la variable a 2 valeurs 1 et 2 à droite ?Qui est un des critères de filtre dans la requête de la ruche à droite ?.
Vous êtes de droite. Drapeau a 2 variables et il est les critères de filtre. L'idée est de casser les données par drapeau et de fusionner les données pour chacune de ces partitions.
ensuite, vous pouvez ajouter le critère de filtre dans la requête de la ruche et de faire de la fusion dans la requête elle-même, puis exécutez la requête à l'aide de la ruche -f <> le seul.

OriginalL'auteur Beta | 2016-02-25