CommencerCommencer gratuitement

Semi-joins

Les semi-joins sont l’inverse des anti-joins : un « anti anti-join », si vous préférez.

Un semi-join renvoie les lignes de la première table pour lesquelles il peut trouver une correspondance 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 jointure ; remplacez simplement la fonction de jointure par semi_join()

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

Vous aurez peut-être remarqué que les résultats d’un semi-join additionnés à ceux d’un anti-join redonnent la table d’origine. Ainsi, quels que soient le contenu des tables ou la façon dont vous les joignez, semi_join(A, B) plus anti_join(A, B) renverra A (éventuellement avec un ordre de lignes différent).

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 rattachés aux métadonnées des pistes et aux termes d’artistes stockés dans Spark ont été pré-définis respectivement sous track_metadata_tbl et artist_terms_tbl.

  • Utilisez un semi-join pour joindre les termes d’artistes aux métadonnées des pistes par la colonne artist_id. Affectez le résultat à joined.
  • Utilisez sdf_dim() pour déterminer combien de lignes et de colonnes contient la table jointe.

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

# 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