Semi-Joins
Semi-Joins sind das Gegenteil von Anti-Joins: sozusagen ein Anti-Anti-Join.
Ein Semi-Join gibt die Zeilen der ersten Tabelle zurück, für die es in der zweiten Tabelle eine Übereinstimmung gibt. Das Prinzip zeigt diese Grafik.

Die Syntax ist dieselbe wie bei anderen Join-Typen; ersetze die Join-Funktion einfach durch semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Dir ist vielleicht aufgefallen, dass die Ergebnisse eines Semi-Joins plus die Ergebnisse eines Anti-Joins die ursprüngliche Tabelle ergeben. Unabhängig vom Tabelleninhalt oder der Art des Joins gilt also: semi_join(A, B) plus anti_join(A, B) ergibt A (eventuell in anderer Zeilenreihenfolge).
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Anleitung zur Übung
Eine Spark-Verbindung wurde für dich als spark_conn erstellt. Tibbles, die in Spark gespeicherte Track-Metadaten bzw. Artist Terms darstellen, sind bereits als track_metadata_tbl bzw. artist_terms_tbl definiert.
- Verwende einen Semi-Join, um die Artist Terms über die Spalte
artist_idmit den Track-Metadaten zu verknüpfen. Weise das Ergebnisjoinedzu. - Bestimme mit
sdf_dim(), wie viele Zeilen und Spalten die verknüpfte Tabelle hat.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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?
___