Zacznij terazZacznij za darmo

Filtrowanie wierszy

Oprócz wybierania kolumn, drugim sposobem na wyodrębnienie istotnych danych ze zbioru jest filtrowanie wierszy. Służy do tego funkcja filter(). Przekazujesz jej obiekt tibble oraz warunki logiczne. Na przykład, aby zwrócić tylko wiersze, w których wartości kolumny x są większe od zera i wartości y są równe wartościom z, użyj poniższego kodu.

a_tibble %>%
  filter(x > 0, y == z)

Zanim przejdziesz do ćwiczenia, zwróć uwagę na dwie ważne kwestie. Po pierwsze, nie myl funkcji filter() z pakietu dplyr z funkcją filter() z pakietu stats. Po drugie, sparklyr tłumaczy kod dplyr na kod SQL przed przekazaniem go do Sparka. Oznacza to, że aktualnie obsługiwany jest tylko ograniczony zestaw operacji filtrowania. Na przykład nie możesz filtrować wierszy tekstowych za pomocą wyrażeń regularnych, jak poniżej:

a_tibble %>%
  filter(grepl("a regex", x))

Strona pomocy funkcji translate_sql() opisuje dostępne możliwości. Możesz używać operatorów porównania takich jak >, != czy [%in%]; operatorów arytmetycznych takich jak +, ^ czy %%; oraz operatorów logicznych takich jak &, | i !. Obsługiwanych jest również wiele funkcji matematycznych, m.in. log(), abs(), round() i sin().

Podobnie jak poprzednio, indeksowanie za pomocą nawiasów kwadratowych nie jest obecnie obsługiwane.

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 i jest dostępne jako spark_conn. Obiekt tibble powiązany z metadanymi utworów przechowywanymi w Sparku jest predefiniowany jako track_metadata_tbl.

  • Tak jak w poprzednim ćwiczeniu, wybierz kolumny artist_name, release, title i year za pomocą select().
  • Przekaż wynik potokiem do filter(), aby uzyskać utwory z lat 60.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)

# Manipulate the track metadata
track_metadata_tbl %>%
  # Select columns
  ___ %>%
  # Filter rows
  ___
Edytuj i uruchom kod