Zacznij terazZacznij za darmo

Zmniejszanie zbioru danych przez próbkowanie

Pracując z dużym zbiorem danych, rzadko kiedy trzeba na raz przetwarzać wszystkie rekordy. Szczególnie na początku projektu, gdy eksperymentujesz z różnymi podejściami, szybciej iterujesz na mniejszym wycinku danych. Funkcja sdf_sample() to wygodny sposób na uzyskanie takiego wycinka. Przyjmuje ona obiekt tibble oraz ułamek wierszy do zwrócenia. W tym przypadku chcemy pobrać próbkę bez zwracania. Aby uzyskać losową próbkę jednej dziesiątej zbioru danych, użyj poniższego kodu.

a_tibble %>%
  sdf_sample(fraction = 0.1, replacement = FALSE)

Ponieważ wyniki próbkowania są losowe, a pomniejszony zbiór danych prawdopodobnie będzie używany wielokrotnie, dobrą praktyką jest użycie funkcji compute(), która zapisuje wyniki jako kolejną ramkę danych Spark.

a_tibble %>%
  sdf_sample(<some args>) %>%
  compute("sample_dataset")

Aby wyniki były odtwarzalne, możesz ustawić ziarno generatora liczb losowych za pomocą argumentu seed. Dzięki temu za każdym razem, gdy uruchamiasz kod, otrzymujesz ten sam losowy zbiór danych. Wartość ziarna nie ma znaczenia – wybierz dowolną dodatnią liczbę całkowitą.

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. Obiekt tibble powiązany z metadanymi utworów przechowywanymi w Sparku jest wstępnie zdefiniowany jako track_metadata_tbl.

  • Użyj funkcji sdf_sample(), aby pobrać 1% metadanych utworów bez zwracania.
    • Przekaż wartość 20000229 do argumentu seed, aby ustawić ziarno generatora liczb losowych.
  • Oblicz wynik i zapisz go w tabeli o nazwie "sample_track_metadata".

Interaktywne ćwiczenie praktyczne

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

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Sample the data without replacement
  ___ %>%
  # Compute the result
  ___
Edytuj i uruchom kod