Introduction
Dans l'immensité d'un désert aride, une violente tempête de sable s'abat, soulevant des nuages de sable qui obscurcissent l'horizon. Au milieu du tourbillon chaos, un imposant dragon du désert plane dans le ciel, ses écailles scintillant avec une couleur d'or brillante. Cette puissante créature est chargée d'une mission cruciale : de rassembler des informations vitales à partir de sources de données dispersées et de découvrir des insights cachés qui pourraient aider à maîtriser la tempête de sable impitoyable.
Le but de ce laboratoire est de vous fournir les compétences pour exploiter le pouvoir de Hadoop et Hive, vous permettant de joindre et de combiner des données provenant de multiples sources. En maîtrisant l'art de joindre des données, vous ouvrirez la possibilité de dévoiler des relations complexes et de découvrir des modèles précieux, tout comme le dragon du désert cherche à déchiffrer les secrets de la tempête de sable enragée.
Configuration de l'environnement
Dans cette étape, vous allez préparer l'environnement nécessaire pour travailler avec Hadoop et Hive.
- Ouvrez une fenêtre de terminal et basculez sur l'utilisateur
hadoopen exécutant la commande suivante :
su - hadoop
- Accédez au répertoire
/home/hadoopen exécutant la commande suivante :
cd /home/hadoop
- Créez un nouveau répertoire appelé
join_labpour stocker vos fichiers :
mkdir join_lab
- Accédez au répertoire
join_lab:
cd join_lab
Maintenant, vous disposez d'un espace de travail dédié pour ce laboratoire.
Création de jeux de données d'échantillonnage
Dans cette étape, vous allez créer deux jeux de données d'échantillonnage pour pratiquer les opérations de jointure dans Hive.
- Créez un nouveau fichier nommé
employees.txtavec le contenu suivant :
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
- Créez un autre fichier nommé
departments.txtavec le contenu suivant :
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
- Lancez le shell Hive en exécutant la commande suivante :
hive
- Chargez les jeux de données dans Hive en exécutant les commandes suivantes :
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;
CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;
Ces commandes créeront deux tables Hive, employees et departments, et chargeront les données à partir des fichiers texte respectifs.
Effectuer une jointure interne
Dans cette étape, vous allez apprendre à effectuer une opération de jointure interne dans Hive pour combiner les données des tables employees et departments.
Exécutez la requête Hive suivante pour effectuer une jointure interne :
CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_1;
Cette requête joint les tables employees et departments respectivement sur les colonnes dept et dept_name. Elle extrait les colonnes emp_id, name, dept_name et location du résultat de la jointure.
La sortie devrait ressembler à ceci :
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
Une jointure interne combine les lignes de deux tables sur une condition spécifiée. Dans ce cas, elle correspond les valeurs de dept de la table employees avec les valeurs de dept_name de la table departments. Le résultat ne contient que les lignes où la condition de jointure est satisfaite, c'est-à-dire où les valeurs de dept et dept_name correspondent.
Effectuer une jointure externe gauche
Dans cette étape, vous allez apprendre à effectuer une opération de jointure gauche externe dans Hive.
Exécutez la requête Hive suivante pour effectuer une jointure gauche externe :
CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_2;
Cette requête effectue une jointure gauche externe entre les tables employees et departments. Elle inclut toutes les lignes de la table de gauche (employees) et les lignes correspondantes de la table de droite (departments). Si il n'y a pas de correspondance dans la table de droite, le résultat contiendra des valeurs NULL pour les colonnes de la table de droite.
La sortie devrait ressembler à ceci :
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
105 Adam Wilson NULL NULL
106 Lisa Brown NULL NULL
Une jointure gauche externe renvoie toutes les lignes de la table de gauche (employees) et les lignes correspondantes de la table de droite (departments). Si une ligne de la table de gauche n'a pas de ligne correspondante dans la table de droite, le résultat inclura des valeurs NULL pour les colonnes de la table de droite.
Résumé
Dans ce laboratoire, vous avez appris à travailler avec Hadoop et Hive pour effectuer des opérations de jointure sur des jeux de données. Vous avez créé des jeux de données d'échantillonnage et les chargé dans des tables Hive, vous permettant de pratiquer les jointures internes et les jointures gauches externes. En maîtrisant ces opérations de jointure, vous avez acquis la capacité de combiner et d'analyser des données provenant de multiples sources, tout comme le dragon du désert combine des informations provenant de sources dispersées pour dévoiler les secrets de la tempête de sable furieuse.
Au cours de tout ce laboratoire, j'ai visé à vous offrir une expérience d'apprentissage structurée et immersive, vous guidant à travers chaque étape avec des instructions claires, des exemples de code et des explications. L'utilisation d'évaluateurs vous a permis de valider votre progression et d'identifier les domaines d'amélioration. En concevant un scénario qui résonne avec les défis rencontrés dans l'analyse de données, j'espère avoir rendu le processus d'apprentissage plus captivant et pertinent.
Dans l'ensemble, ce laboratoire vous a non seulement équipé de compétences techniques en Hadoop et Hive, mais a également favorisé une compréhension plus approfondie de l'importance de l'intégration et de l'analyse de données dans la résolution de problèmes complexes. Tout comme le dragon du désert persévère dans sa mission, vos connaissances nouvellement acquises vous permettront de faire face avec confiance et créativité aux défis de données du monde réel.



