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

Connected

Exercice

Trier avec arrange() vs. sdf_sort()

Jusqu'ici dans ce chapitre, vous avez exploré certaines fonctions de transformation de caractéristiques de MLlib de Spark. sparklyr donne aussi accès à des fonctions qui utilisent l'API DataFrame de Spark.

La façon dplyr de trier un tibble est d'utiliser arrange(). Vous pouvez aussi trier des tibbles avec l'API DataFrame de Spark en utilisant sdf_sort(). Cette fonction reçoit un vecteur de caractères indiquant les colonnes sur lesquelles trier, et pour l'instant seul le tri en ordre croissant est pris en charge.

Par exemple, pour trier d'abord par la colonne x, puis (en cas d'égalité) par y, puis par z, le code suivant compare l'approche dplyr et celle de l'API DataFrame de Spark.

a_tibble %>%
  arrange(x, y, z)
a_tibble %>%
  sdf_sort(c("x", "y", "z"))

Pour voir quelle méthode est la plus rapide, essayez à la fois arrange() et sdf_sort(). Vous pouvez mesurer le temps d'exécution en encapsulant votre code dans microbenchmark(), du paquet du même nom.

microbenchmark({
  # your code
})

Vous pouvez en apprendre davantage sur le profilage des performances de votre code dans le cours Writing Efficient R Code.

Instructions

100 XP

Une connexion Spark a été créée pour vous sous le nom spark_conn. Un tibble rattaché aux métadonnées des pistes stockées dans Spark a été prédefini sous le nom track_metadata_tbl.

  • Utilisez microbenchmark() pour comparer le temps requis pour effectuer les actions suivantes.
    • Utilisez arrange() pour ordonner les lignes de track_metadata_tbl par year, puis artist_name, puis release, puis title.
    • Rapatriez le résultat avec collect().
    • Reprenez les mêmes étapes, cette fois avec sdf_sort() plutôt que arrange(). N'oubliez pas de mettre les noms de colonnes entre guillemets.