Réduire les données par échantillonnage
Lorsque vous travaillez avec un grand jeu de données, vous n’avez généralement pas besoin d’utiliser l’ensemble complet en permanence. Surtout au début d’un projet, quand vous explorez différentes approches, vous pouvez souvent itérer plus vite sur un sous-ensemble plus petit des données. sdf_sample() offre un moyen pratique de le faire. Cette fonction prend un tibble et la fraction de lignes à retourner. Dans ce cas, vous souhaitez échantillonner sans remise. Pour obtenir un échantillon aléatoire d’un dixième de votre jeu de données, vous utiliseriez le code suivant.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Comme les résultats de l’échantillonnage sont aléatoires et que vous souhaiterez probablement réutiliser le jeu de données réduit, il est courant d’utiliser compute() pour enregistrer les résultats comme un autre DataFrame Spark.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Pour rendre les résultats reproductibles, vous pouvez également fixer une graine aléatoire via l’argument seed. Cela garantit que vous obtenez le même jeu de données aléatoire à chaque exécution de votre code. Le numéro utilisé pour la graine n’a pas d’importance ; choisissez simplement votre entier positif favori.
Cet exercice fait partie du cours
Introduction à Spark avec sparklyr en R
Instructions
Une connexion Spark a été créée pour vous sous le nom spark_conn. Un tibble lié aux métadonnées des pistes stockées dans Spark a été prédéfini sous le nom track_metadata_tbl.
- Utilisez
sdf_sample()pour échantillonner 1 % des métadonnées des pistes sans remise.- Passez
20000229à l’argumentseedpour fixer une graine aléatoire.
- Passez
- Calculez le résultat et enregistrez-le dans une table nommée
"sample_track_metadata".
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___