1. Apprendre
  2. /
  3. Cours
  4. /
  5. Introduction à Spark avec sparklyr en R

Connected

Exercice

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é.

Instructions

100 XP

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'argument seed pour fixer la graine aléatoire.
  • Calculez le résultat et stockez-le dans une table nommée "sample_track_metadata".