1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do Spark z pakietem sparklyr w R

Connected

ćwiczenie

Sortowanie: `sdf_sort()` kontra `arrange()`

W tym rozdziale poznałeś już kilka funkcji transformacji cech z biblioteki MLlib Sparka. sparklyr daje też dostęp do funkcji korzystających bezpośrednio z API DataFrame Sparka.

W dplyr sortowanie tibble odbywa się za pomocą arrange(). Możesz też sortować tibble przez API DataFrame Sparka, używając sdf_sort(). Funkcja ta przyjmuje wektor nazw kolumn (jako ciągi znaków) i aktualnie obsługuje wyłącznie sortowanie rosnące.

Na przykład, aby posortować według kolumny x, a w przypadku remisów – według y, a następnie z, poniższy kod porównuje podejście dplyr z podejściem Spark DataFrame.

a_tibble %>%
  arrange(x, y, z)
a_tibble %>%
  sdf_sort(c("x", "y", "z"))

Aby sprawdzić, która metoda jest szybsza, wypróbuj obie: arrange() i sdf_sort(). Czas wykonania kodu możesz zmierzyć, owijając go w microbenchmark() z pakietu o tej samej nazwie.

microbenchmark({
  # twój kod
})

Więcej o profilowaniu wydajności kodu dowiesz się z kursu Writing Efficient R Code.

Instrukcje

100 XP

Połączenie ze Sparkiem zostało już dla ciebie utworzone jako spark_conn. Tibble powiązany z metadanymi utworów przechowywanymi w Sparku jest wstępnie zdefiniowany jako track_metadata_tbl.

  • Użyj microbenchmark(), aby porównać czas wykonania poniższych operacji.
    • Użyj arrange(), aby posortować wiersze track_metadata_tbl według year, potem artist_name, następnie release, a na końcu title.
    • Zbierz wynik za pomocą collect().
    • Wykonaj to samo, ale tym razem użyj sdf_sort() zamiast arrange(). Pamiętaj, aby nazwy kolumn podać w cudzysłowie.