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 de tout utiliser en tout temps. Surtout au début d'un projet, quand vous explorez différentes approches, vous pouvez souvent itérer plus rapidement en travaillant sur un sous-ensemble plus petit des données. sdf_sample() offre un moyen pratique de le faire. Cette fonction reçoit une tibble et la fraction de lignes à retourner. Dans notre cas, vous voulez un échantillonnage sans remise. Pour obtenir un échantillon aléatoire correspondant à 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 voudrez probablement réutiliser le jeu de données réduit, il est courant d'utiliser compute() pour stocker 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 aussi définir une graine aléatoire au moyen de l'argument seed. Cela vous garantit d'obtenir le même jeu de données aléatoire chaque fois que vous exécutez votre code. Le nombre choisi pour la graine importe peu ; sélectionnez simplement votre entier positif préféré.
Cette activité fait partie du cours
Introduction à Spark avec sparklyr en R
Instructions de l’exercice
Une connexion Spark a été créée pour vous sous le nom spark_conn. Une tibble liée aux métadonnées des pistes stockées dans Spark a été prédéfinie 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 la graine aléatoire.
- Passez
- Calculez le résultat et stockez-le dans une table nommée
"sample_track_metadata".
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___