Left joins
Kromě práce s jednotlivými datovými rámci umožňuje sparklyr také spojovat dva datové rámce dohromady. Podrobný přehled toho, jak spojovat tabulky pomocí syntaxe dplyr, najdeš v kurzu Joining Data with dplyr. Ve zbytku této kapitoly si ukážeme několik příkladů, jak to dělat ve Sparku.
Left join vezme všechny hodnoty z první tabulky a hledá shody ve druhé tabulce. Pokud shodu najde, přidá data z druhé tabulky; pokud ne, doplní chybějící hodnoty. Princip je znázorněn v tomto diagramu.

Left join je typem mutating join, protože jednoduše přidává sloupce k první tabulce. Chceš-li provést left join pomocí sparklyr, zavolej left_join() a předej mu dvě tibbles a znakový vektor sloupců, podle kterých se má spojení provést.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Pokud toto spojení popisuješ slovy, názvy tabulek se obrátí. Toto spojení by se zapsalo jako „another_tibble is left joined to a_tibble".
Toto cvičení představuje další Spark DataFrame obsahující termíny popisující jednotlivé interprety. Pohybují se od obecnějších výrazů jako „pop" až po specializovanější žánry jako „swiss hip hop" nebo „mathgrindcore".
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
Spark připojení bylo vytvořeno za tebe jako spark_conn. Tibbles napojené na metadata skladeb a termíny interpretů uložené ve Sparku jsou předdefinovány jako track_metadata_tbl a artist_terms_tbl.
- Pomocí left join spoj termíny interpretů s metadaty skladeb podle sloupce
artist_id.- Tabulka, ke které se připojuje,
track_metadata_tbl, jde jako první. - Tabulka, která se připojuje k první,
artist_terms_tbl, jde jako druhá. - Výsledek ulož do proměnné
joined.
- Tabulka, ke které se připojuje,
- 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
# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)
# How many rows and columns are in the joined table?
___