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.

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
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?
___