Zacznij terazZacznij za darmo

Złączenia lewostronne

sparklyr nie tylko umożliwia przekształcanie pojedynczych ramek danych, ale pozwala też łączyć dwie ramki danych ze sobą. Szczegółowe omówienie łączenia tabel za pomocą składni dplyr znajdziesz w kursie Joining Data with dplyr. W pozostałej części tego rozdziału zobaczysz kilka przykładów, jak robić to w Sparku.

Złączenie lewostronne (left join) pobiera wszystkie wartości z pierwszej tabeli i szuka dopasowań w drugiej tabeli. Gdy znajdzie dopasowanie, dodaje dane z drugiej tabeli; gdy nie znajdzie – wstawia brakujące wartości. Zasadę działania ilustruje poniższy diagram.

Złączenie lewostronne zilustrowane na tabeli kolorów.

Złączenia lewostronne należą do kategorii złączeń mutujących (mutating joins), ponieważ po prostu dodają kolumny do pierwszej tabeli. Aby wykonać złączenie lewostronne w sparklyr, wywołaj left_join(), przekazując dwa tibble'e oraz wektor znakowy kolumn, po których ma nastąpić złączenie.

left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

Opisując to złączenie słowami, nazwy tabel podaje się w odwrotnej kolejności. Powyższe złączenie opisujemy jako: „another_tibble jest złączony lewostronnie do a_tibble".

To ćwiczenie wprowadza kolejną ramkę danych Sparka zawierającą terminy opisujące poszczególnych artystów. Obejmują one zarówno ogólne etykiety, jak „pop", jak i bardziej niszowe gatunki, takie jak „swiss hip hop" czy „mathgrindcore".

To ćwiczenie jest częścią kursu

Wprowadzenie do Spark z pakietem sparklyr w R

Zobacz kurs

Instrukcje do ćwiczenia

Połączenie ze Sparkiem zostało już utworzone jako spark_conn. Tibble'e powiązane z metadanymi utworów i terminami artystów przechowywanymi w Sparku zostały wstępnie zdefiniowane jako track_metadata_tbl i artist_terms_tbl.

  • Użyj złączenia lewostronnego, aby połączyć terminy artystów z metadanymi utworów po kolumnie artist_id.
    • Tabela, do której dołączamy, track_metadata_tbl, jest pierwszym argumentem.
    • Tabela dołączana, artist_terms_tbl, jest kolejnym argumentem.
    • Przypisz wynik do zmiennej joined.
  • Użyj sdf_dim(), aby sprawdzić, ile wierszy i kolumn zawiera połączona 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

# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)

# How many rows and columns are in the joined table?
___
Edytuj i uruchom kod