CommencezCommencez gratuitement

Jointures semi

Les jointures semi sont l'opposé des anti-jointures : une « anti anti jointure », si vous préférez.

Une jointure semi retourne les lignes de la première table pour lesquelles une correspondance peut être trouvée dans la seconde. Le principe est illustré dans ce schéma.

A semi join, explained using table of colors.

La syntaxe est la même que pour les autres types de jointures; il suffit d'utiliser la fonction semi_join() à la place.

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

Vous avez peut-être remarqué que les résultats d'une jointure semi additionnés à ceux d'une anti-jointure redonnent la table d'origine. Ainsi, peu importe le contenu des tables ou la façon de les joindre, semi_join(A, B) plus anti_join(A, B) renverra A (peut-être avec les lignes dans un ordre différent).

Cette activité fait partie du cours

Introduction à Spark avec sparklyr en R

Voir le cours

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 d'artistes stockés dans Spark ont été préalablement définis sous track_metadata_tbl et artist_terms_tbl respectivement.

  • Utilisez une jointure semi pour relier les termes d'artistes aux métadonnées des pistes par la colonne artist_id. Assignez le résultat à joined.
  • Utilisez sdf_dim() pour déterminer combien de lignes et de colonnes comporte la table jointe.

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

# Semi join artist terms to track metadata by artist_id
joined <- ___

# How many rows and columns are in the joined table?
___
Modifier et exécuter le code