CommencerCommencer gratuitement

Jointures left

En plus de manipuler des DataFrames uniques, sparklyr vous permet de joindre deux DataFrames. Une présentation complète des jointures avec la syntaxe dplyr est proposée dans le cours Joining Data with dplyr. Dans la suite de ce chapitre, vous verrez quelques exemples de ces opérations avec Spark.

Une jointure left prend toutes les lignes de la première table et cherche des correspondances dans la seconde. Si une correspondance est trouvée, elle ajoute les données de la seconde table ; sinon, elle ajoute des valeurs manquantes. Le principe est illustré dans ce schéma.

A left join, explained using table of colors.

Les jointures left sont un type de « mutating join », puisqu’elles ajoutent simplement des colonnes à la première table. Pour effectuer une jointure left avec sparklyr, appelez left_join() en passant deux tibbles et un vecteur de caractères indiquant les colonnes de jointure.

left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

Lorsque vous décrivez cette jointure en toutes lettres, l’ordre des noms de tables est inversé. Cette jointure s’écrirait : « another_tibble est joint en left à a_tibble ».

Cet exercice introduit un autre DataFrame Spark contenant des termes qui décrivent chaque artiste. Ceux-ci vont de termes généraux, comme « pop », à des genres plus confidentiels tels que « swiss hip hop » et « mathgrindcore ».

Cet exercice fait partie du cours

Introduction à Spark avec sparklyr en R

Afficher le cours

Instructions

Une connexion Spark a été créée pour vous sous le nom spark_conn. Des tibbles liés aux métadonnées des morceaux et aux termes associés aux artistes stockés dans Spark ont été prédéfinis sous track_metadata_tbl et artist_terms_tbl respectivement.

  • Réalisez une jointure left pour joindre les termes artistes aux métadonnées des morceaux via la colonne artist_id.
    • La table à laquelle on joint, track_metadata_tbl, vient en premier.
    • La table qui rejoint la première, artist_terms_tbl, vient ensuite.
    • Affectez le résultat à joined.
  • Utilisez sdf_dim() pour déterminer le nombre de lignes et de colonnes de la table résultante.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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?
___
Modifier et exécuter le code