Jointures à gauche
En plus de manipuler des data frames individuels, sparklyr vous permet d'en joindre deux ensemble. Une présentation complète des jointures avec la syntaxe dplyr est offerte dans le cours Joining Data with dplyr. Pour le reste de ce chapitre, vous verrez quelques exemples de la marche à suivre avec Spark.
Une jointure à gauche prend toutes les valeurs de la première table et cherche des correspondances dans la deuxième. Si une correspondance est trouvée, elle ajoute les données de la deuxième table; sinon, elle ajoute des valeurs manquantes. Le principe est illustré dans ce schéma.

Les jointures à gauche sont un type de mutating join, puisqu'elles ajoutent simplement des colonnes à la première table. Pour effectuer une jointure à gauche avec sparklyr, appelez left_join(), en passant deux tibbles et un vecteur de caractères indiquant les colonnes sur lesquelles faire la jointure.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Lorsque vous décrivez cette jointure en mots, l'ordre des noms de tables est inversé. On écrirait cette jointure comme suit : « another_tibble est joint à gauche à a_tibble ».
Cet exercice introduit un autre DataFrame Spark contenant des termes qui décrivent chaque artiste. Ceux‑ci vont de termes assez généraux, comme « pop », à des genres plus pointus comme « swiss hip hop » et « mathgrindcore ».
Cette activité fait partie du cours
Introduction à Spark avec sparklyr en R
Instructions de l’exercice
Une connexion Spark a été créée pour vous sous le nom spark_conn. Des tibbles rattachés aux métadonnées des pistes et aux termes des artistes stockés dans Spark ont été prédéfinis, respectivement track_metadata_tbl et artist_terms_tbl.
- Utilisez une jointure à gauche pour joindre les termes des artistes aux métadonnées des pistes par la colonne
artist_id.- La table à laquelle on joint,
track_metadata_tbl, vient en premier. - La table qui se joint à la première,
artist_terms_tbl, vient ensuite. - Assignez le résultat à
joined.
- La table à laquelle on joint,
- Utilisez
sdf_dim()pour déterminer combien de lignes et de colonnes contient la table obtenue.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl
# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)
# How many rows and columns are in the joined table?
___