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

Connected

Exercice

Gros volumes de données, petit tibble

Dans le dernier exercice, lorsque vous avez copié les données vers Spark, copy_to() a retourné une valeur. Cette valeur de retour est un type particulier de tibble() qui ne contient pas ses propres données. Pour l'expliquer, il faut connaître un peu la façon dont les forfaits tidyverse stockent les données. Les tibbles sont habituellement une variante de data.frame avec une méthode d'affichage plus conviviale. Cependant, dplyr leur permet aussi de représenter des données provenant d'une source distante, comme une base de données ou — comme ici — Spark. Pour les ensembles de données distants, l'objet tibble stocke simplement une connexion vers les données distantes. Nous y reviendrons plus en détail plus tard, mais l'idée importante pour l'instant, c'est que même si l'ensemble de données est volumineux, la taille de l'objet tibble demeure petite.

Côté Spark, les données sont stockées dans une variable appelée DataFrame. C'est plus ou moins l'équivalent direct du type de variable data.frame en R. (Toutefois, les types des colonnes portent des noms légèrement différents — par exemple, les colonnes numeric sont appelées colonnes DoubleType.) Tout au long du cours, le terme « data frame » sera utilisé, sauf si une précision est nécessaire entre data.frame et DataFrame. Comme ces types sont également analogues aux tables de base de données, le terme « table » sera parfois employé pour décrire ce genre de données rectangulaires.

Appeler tbl() avec une connexion Spark et une chaîne qui nomme le data frame Spark retournera le même objet tibble que celui obtenu avec copy_to().

Un outil utile que vous verrez dans cet exercice est la fonction object_size() du forfait pryr. Elle indique la quantité de mémoire qu'un objet occupe.

Instructions

100 XP

Une connexion Spark a été créée pour vous sous le nom spark_conn. Les métadonnées de 1 000 pistes sont stockées dans le cluster Spark, dans la table "track_metadata".

  • Liez-vous à la table "track_metadata" à l'aide de tbl(). Assignez le résultat à track_metadata_tbl.
  • Vérifiez la taille de l'ensemble de données en utilisant dim() sur track_metadata_tbl.
  • Voyez à quel point le tibble est petit en utilisant object_size() sur track_metadata_tbl.