2017-09-11 3 views
1

Je suis nouveau à HIVE et HADOOP, ici j'essaie de joindre deux exemples de tables dans la ruche où les tables n'ont pas de relation de clé étrangère principale juste pour la pratique: - les tableaux sont les suivantsruche join a échoué mr.MapredLocalTask ​​

Employees table:- 
       id name gender salary departmentid  

       1 mark  male 3333 1 
       2 Steve  male 5464 3 
       3 Ben  male 3873 2 
       4 bender male 9298 1 
       5 fender male 654  2 

departments table:- 
      id name  location 

      1  IT  NEW YORK 
      2  HR  LONDON 
      3  PAYROLL SYDNEY 

hive> select employees.name as employee_name, departments.name as department_name 
    > from employees   
    > join departments on departments.id = employees.departmentid; 

RÉSULTAT: -

Query ID = cloudera_20170911030505_93378edb-f8b8-45d0-9141-3fe065211f3d emplois total = 1 Failed: erreur d'exécution, le code de retour 1 de org.apache.hadoop. salut ve.ql.exec.mr.MapredLocalTask ​​

depuis que je suis nouveau à rive de SQL me suggérer comment résoudre cette erreur? Toute aide serait appréciée.

+0

Pouvez-vous coller l'intégralité de la trace de pile pour une meilleure clarté. –

+0

Query ID = cloudera_20170911041010_375af566-cc17-4649-b992-7a8a10685316 emplois Total = 1 Failed: Erreur d'exécution, le code de retour 1 de org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask ​​ –

+0

Une question similaire a été soulevée .Vérifiez ce lien: https://community.cloudera.com/t5/Web-UI-Hue-Beeswax/Hue-FAILED-Execution-Error-return-code-1-from-org-apache-hadoop/td- p/36256. –

Répondre

0

Requête:

sélectionnez employees.name comme EMPLOYEE_NAME, departments.name comme department_name des employés T1
rejoindre les départements T2 T1.departmentid = T2.id;

Hive jusqu'à la version 0.13 ne prend pas en charge les concepts de clé primaire. Cela a été introduit dans les versions ultérieures sur ruche. Donc, il faut juste faire attention à ce que les colonnes soient présentes, en cas de doublons dans les colonnes, cela va créer plusieurs enregistrements. Si vous souhaitez utiliser d'autres cas d'utilisation, vous pouvez essayer d'utiliser la jointure externe gauche, la jointure externe droite, la jointure complète. Soyez prudent lorsque vous utilisez des jointures croisées.

Si l'erreur persiste, veuillez envoyer plus de détails sur le schéma de la table que vous avez utilisé. Vous pouvez utiliser show create table nom_bd.table_name pour afficher votre schéma complet.

0

set hive.auto.convert.join = false; Résolution du problème dans mon cas.