Semi-joins
Semi-joins zijn het tegenovergestelde van anti-joins: eigenlijk een anti-anti-join.
Een semi-join geeft de rijen van de eerste tabel terug waarvoor het wél een overeenkomst kan vinden in de tweede tabel. Het principe zie je in dit diagram.

De syntax is hetzelfde als bij andere join-typen; vervang simpelweg de andere join-functie door semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Je hebt misschien gezien dat de resultaten van een semi-join plus de resultaten van een anti-join samen de originele tabel vormen. Dus, ongeacht de tabelinhoud of hoe je ze joinet, semi_join(A, B) plus anti_join(A, B) levert A op (misschien met de rijen in een andere volgorde).
Deze oefening maakt deel uit van de cursus
Introductie tot Spark met sparklyr in R
Oefeninstructies
Er is een Spark-verbinding voor je aangemaakt als spark_conn. Tibbles die gekoppeld zijn aan de trackmetadata en artiesttermen die in Spark zijn opgeslagen, zijn vooraf gedefinieerd als respectievelijk track_metadata_tbl en artist_terms_tbl.
- Gebruik een semi-join om de artiesttermen te joinen met de trackmetadata op de kolom
artist_id. Wijs het resultaat toe aanjoined. - Gebruik
sdf_dim()om te bepalen hoeveel rijen en kolommen de samengevoegde tabel heeft.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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?
___