Ridurre i dati tramite campionamento
Quando lavori con un insieme di dati molto grande, in genere non hai davvero bisogno di usarlo tutto, sempre. Soprattutto all'inizio del progetto, mentre stai sperimentando liberamente cosa vuoi fare, spesso puoi iterare più velocemente lavorando su un sottoinsieme più piccolo dei dati. sdf_sample() offre un modo comodo per farlo. Prende una tibble e la frazione di righe da restituire. In questo caso, vuoi campionare senza reinserimento. Per ottenere un campione casuale di un decimo del tuo insieme di dati, useresti il seguente codice.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Poiché i risultati del campionamento sono casuali e probabilmente vorrai riutilizzare l'insieme di dati ridotto, è comune usare compute() per salvare i risultati come un altro data frame di Spark.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Per rendere i risultati riproducibili, puoi anche impostare un seme per il generatore di numeri casuali tramite l'argomento seed. In questo modo otterrai lo stesso insieme di dati casuale ogni volta che esegui il codice. Non importa quale numero usi come seme; scegli semplicemente il tuo intero positivo preferito.
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
È stata creata per te una connessione Spark come spark_conn. Una tibble collegata ai metadati delle tracce archiviati in Spark è stata predefinita come track_metadata_tbl.
- Usa
sdf_sample()per campionare l'1% dei metadati delle tracce senza reinserimento.- Passa
20000229all'argomentoseedper impostare un seme casuale.
- Passa
- Calcola il risultato e salvalo in una tabella chiamata
"sample_track_metadata".
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___