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
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
20000229argumentuluiseedpentru a seta o sămânță aleatoare.
- Transmite valoarea
- 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
___