Semi join
Semi join to przeciwieństwo anti joina – można go nazwać „anti-anti joinem".
Semi join zwraca te wiersze z pierwszej tabeli, dla których można znaleźć dopasowanie w drugiej tabeli. Zasadę działania ilustruje poniższy diagram.

Składnia jest taka sama jak w przypadku innych typów złączeń – wystarczy zastąpić inną funkcję złączenia przez semi_join():
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Można zauważyć, że wyniki semi joina i anti joina razem dają oryginalną tabelę. Innymi słowy, niezależnie od zawartości tabel i sposobu ich łączenia, semi_join(A, B) oraz anti_join(A, B) razem zwrócą A (choć kolejność wierszy może być inna).
To ćwiczenie jest częścią kursu
Wprowadzenie do Spark z pakietem sparklyr w R
Instrukcje do ćwiczenia
Połączenie ze Sparkiem zostało już utworzone jako spark_conn. Tibble powiązane z metadanymi utworów i terminami artystów zapisanymi w Sparku są wstępnie zdefiniowane odpowiednio jako track_metadata_tbl i artist_terms_tbl.
- Użyj semi joina, aby złączyć terminy artystów z metadanymi utworów według kolumny
artist_id. Wynik przypisz do zmiennejjoined. - Użyj
sdf_dim(), aby sprawdzić, ile wierszy i kolumn zawiera wynikowa tabela.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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?
___