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

Connected

Exercice

Partitionner des données avec un effet de groupe

Avant de pouvoir exécuter des modèles, vous devez partitionner vos données en ensembles d'entraînement et de test. Il y a une particularité avec cet ensemble de données, ce qui signifie que vous ne pouvez pas simplement appeler sdf_random_split(). La particularité, c'est que toutes les pistes d'un même artiste devraient se retrouver dans le même ensemble ; votre modèle paraîtra plus précis qu'il ne l'est vraiment si des pistes d'un artiste servent à l'entraîner puis se retrouvent dans l'ensemble de test.

L'astuce consiste à ne partitionner que les identifiants d'artistes, puis à effectuer une jointure interne de ces identifiants partitionnés avec l'ensemble de données d'origine. Notez que artist_id est plus fiable que artist_name pour la partition, puisque certains artistes utilisent des variantes de leur nom d'une piste à l'autre. Par exemple, Duke Ellington a parfois un nom d'artiste "Duke Ellington", mais d'autres fois "Duke Ellington & His Orchestra", ou encore une des nombreuses variantes orthographiques.

Instructions

100 XP

Une connexion Spark a été créée pour vous sous le nom spark_conn. Un tibble lié aux métadonnées de pistes et aux données de timbre combinées et filtrées, stockées dans Spark, a été pré‑défini sous le nom track_data_tbl.

  • Partitionnez les identifiants d'artistes en ensembles d'entraînement et de test, et assignez le résultat à training_testing_artist_ids.
    • Sélectionnez la colonne artist_id de track_data_tbl.
    • Obtenez les lignes uniques.
    • Partitionnez en 70 % pour l'entraînement et 30 % pour le test.
  • Effectuez une jointure interne de l'ensemble d'entraînement avec track_data_tbl par artist_id, et assignez le résultat à track_data_to_model_tbl.
  • Effectuez une jointure interne de l'ensemble de test avec track_data_tbl par artist_id, et assignez le résultat à track_data_to_predict_tbl.