Semi join-uri
Semi join-urile sunt opusul anti join-urilor: un anti-anti join, dacă vrei.
Un semi join returnează rândurile din primul tabel pentru care există o potrivire în al doilea tabel. Principiul este ilustrat în diagrama de mai jos.

Sintaxa este identică cu cea a celorlalte tipuri de join; înlocuiește pur și simplu funcția de join cu semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Poate ai observat deja că rezultatele unui semi join combinate cu rezultatele unui anti join reconstituie tabelul original. Astfel, indiferent de conținutul tabelelor sau de modul în care le îmbini, semi_join(A, B) împreună cu anti_join(A, B) vor returna A (posibil cu rândurile într-o altă ordine).
Acest exercițiu face parte din cursul
Introducere în Spark cu sparklyr în R
Instrucțiuni pentru exercițiu
O conexiune Spark a fost creată pentru tine sub numele spark_conn. Tibble-urile asociate metadatelor pistelor și termenilor artiștilor stocați în Spark sunt predefinite ca track_metadata_tbl și, respectiv, artist_terms_tbl.
- Folosește un semi join pentru a îmbina termenii artiștilor cu metadatele pistelor după coloana
artist_id. Atribuie rezultatul variabileijoined. - Folosește
sdf_dim()pentru a determina câte rânduri și coloane are tabelul rezultat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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?
___