Semi join
Semi join je opakem anti joinu – dá se říct, že jde o „anti-anti join".
Semi join vrátí ty řádky z první tabulky, pro které lze najít shodu ve druhé tabulce. Princip znázorňuje následující diagram.

Syntax je stejná jako u ostatních typů joinů – stačí nahradit příslušnou join funkci za semi_join():
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Možná sis všiml/a, že výsledky semi joinu a anti joinu dohromady tvoří původní tabulku. Platí tedy, že bez ohledu na obsah tabulek nebo způsob jejich spojení vrátí semi_join(A, B) plus anti_join(A, B) tabulku A (i když pořadí řádků se může lišit).
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
Spark připojení je pro tebe připraveno jako spark_conn. Tibble připojené k metadatům skladeb a termínům interpretů uloženým ve Sparku jsou předdefinovány jako track_metadata_tbl a artist_terms_tbl.
- Pomocí semi joinu spoj termíny interpretů s metadaty skladeb podle sloupce
artist_id. Výsledek ulož do proměnnéjoined. - Pomocí
sdf_dim()zjisti, kolik řádků a sloupců spojená tabulka obsahuje.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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?
___