ÎncepețiÎncepe gratuit

Reducerea datelor prin eșantionare

Atunci când lucrezi cu un set de date de mari dimensiuni, de obicei nu ai nevoie să folosești toate datele în permanență. Mai ales la începutul unui proiect, când explorezi diverse direcții, poți itera mai rapid lucrând pe un subset mai mic de date. sdf_sample() oferă o modalitate convenabilă de a face asta. Funcția primește un tibble și proporția de rânduri care să fie returnate. În acest caz, vrei să eșantionezi fără înlocuire. Pentru a obține un eșantion aleatoriu de o zecime din setul de date, folosești codul de mai jos.

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

Deoarece rezultatele eșantionării sunt aleatoare și vei dori, cel mai probabil, să reutilizezi setul de date redus, este o practică obișnuită să folosești compute() pentru a stoca rezultatele ca un alt DataFrame Spark.

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

Pentru a face rezultatele reproductibile, poți seta și o sămânță pentru generatorul de numere aleatoare, prin argumentul seed. Astfel, vei obține același eșantion aleatoriu de fiecare dată când rulezi codul. Nu contează ce număr alegi pentru sămânță; selectează orice număr întreg pozitiv preferat.

Acest exercițiu face parte din cursul

Introducere în Spark cu sparklyr în R

Vezi cursul

Instrucțiuni pentru exercițiu

O conexiune Spark a fost creată pentru tine sub numele spark_conn. Un tibble asociat metadatelor despre melodii, stocate în Spark, a fost predefinit ca track_metadata_tbl.

  • Folosește sdf_sample() pentru a eșantiona 1% din metadatele despre melodii, fără înlocuire.
    • Transmite valoarea 20000229 argumentului seed pentru a seta o sămânță aleatoare.
  • Calculează rezultatul și stochează-l într-un tabel numit "sample_track_metadata".

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Sample the data without replacement
  ___ %>%
  # Compute the result
  ___
Editează și rulează codul