Reducir los datos mediante muestreo
Cuando trabajas con un conjunto de datos grande, normalmente no necesitas usarlo entero todo el tiempo. Sobre todo al inicio del proyecto, mientras pruebas distintas ideas, a menudo puedes iterar más rápido si trabajas con un subconjunto más pequeño de los datos. sdf_sample() ofrece una forma práctica de hacerlo. Recibe un tibble y la fracción de filas que quieres devolver. En este caso, quieres muestrear sin reemplazo. Para obtener una muestra aleatoria de una décima parte de tu conjunto de datos, usarías el siguiente código.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Como los resultados del muestreo son aleatorios, y probablemente querrás reutilizar el conjunto de datos reducido, es habitual usar compute() para almacenar los resultados como otro data frame de Spark.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Para que los resultados sean reproducibles, también puedes fijar una semilla de números aleatorios con el argumento seed. Hacer esto implica que obtendrás el mismo conjunto de datos aleatorio cada vez que ejecutes tu código. No importa qué número uses como semilla; simplemente elige tu número entero positivo favorito.
Este ejercicio forma parte del curso
Introducción a Spark con sparklyr en R
Instrucciones del ejercicio
Se ha creado una conexión de Spark como spark_conn. Se ha predefinido un tibble asociado a los metadatos de las pistas almacenados en Spark como track_metadata_tbl.
- Usa
sdf_sample()para muestrear el 1% de los metadatos de las pistas sin reemplazo.- Pasa
20000229al argumentoseedpara fijar una semilla aleatoria.
- Pasa
- Calcula el resultado y guárdalo en una tabla llamada
"sample_track_metadata".
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___