Fichiers

Partie 0

Mise en place

Installer PySpark, récupérer les données et démarrer Spark.

Étape 1 / 8
0.1
Lecture

Ouvrir un notebook

Tout le TP se fait dans un notebook Python : un document où l'on écrit du code dans des cellules, que l'on exécute une par une avec Maj + Entrée.

Trois possibilités :

  • Le serveur Jupyter de la classe, si un bouton « Jupyter » apparaît en haut de cette page : cliquez dessus et connectez-vous avec l'identifiant donné par votre enseignant (à la première connexion, le mot de passe que vous tapez devient le vôtre : retenez-le !). Le notebook de départ et les données sont déjà dans votre espace, PySpark est déjà installé.
  • Google Colab (le plus simple) : allez sur colab.research.google.com, puis Fichier → Importer un notebook et choisissez le notebook de départ téléchargé depuis la page d'accueil. Rien d'autre à installer.
  • Jupyter sur votre ordinateur : il faut Python 3.9+ et Java 17+ (tapez java -version dans un terminal pour vérifier). Lancez ensuite jupyter notebook et ouvrez le notebook de départ.

Le notebook de départ contient un titre et une cellule vide pour chaque étape de ce guide. Vous pouvez aussi partir d'un notebook vide : ça marche tout aussi bien.

0.2
Guidé

Installer PySpark

PySpark est la bibliothèque qui permet d'utiliser Spark depuis Python. Elle s'installe avec pip, comme n'importe quelle bibliothèque. Le % au début permet de lancer pip depuis le notebook.

Tapez ce code dans une nouvelle cellule, puis exécutez-le
%pip install -q pyspark
Résultat attendu
Aucune erreur. Il peut y avoir quelques lignes d'information : c'est normal.
0.3
Guidé

Vérifier l'installation

On importe la bibliothèque et on affiche sa version, pour vérifier que tout est en place.

Tapez ce code dans une nouvelle cellule, puis exécutez-le
import pyspark
print("PySpark version", pyspark.__version__)
Résultat attendu
PySpark version 4.x.x (le numéro exact peut varier)
0.4
Guidé

Récupérer les données

Le TP utilise trois fichiers, rangés dans un dossier data/ :

  • ventes.csv : les ventes d'une boutique en ligne en 2025 ;
  • clients.csv : les clients de la boutique ;
  • texte.txt : un petit texte pour s'échauffer.

Sur le serveur de la classe, le dossier data/ est déjà là : rien à faire.

Avec le notebook de départ, la cellule de cette étape est déjà remplie : exécutez-la, elle crée les fichiers.

Avec un notebook vide, exécutez le code ci-dessous : il télécharge les données depuis ce site et les décompresse.

Tapez ce code dans une nouvelle cellule, puis exécutez-le
import urllib.request, zipfile, os

urllib.request.urlretrieve("{{ORIGIN}}/fichiers/data.zip", "data.zip")
zipfile.ZipFile("data.zip").extractall(".")
print(os.listdir("data"))
Résultat attendu
['clients.csv', 'texte.txt', 'ventes.csv'] (dans un ordre quelconque)
0.5
Guidé

Créer la SparkSession

La SparkSession est la porte d'entrée de Spark : tout programme PySpark commence par la créer.

  • appName donne un nom à votre application ;
  • master("local[*]") demande à Spark de tourner sur votre machine, en utilisant tous les cœurs du processeur (c'est le sens de *) ;
  • F est un raccourci vers les fonctions de Spark (F.col, F.sum, F.avg…) que nous utiliserons partout.

La première exécution est un peu lente : Spark démarre une machine virtuelle Java en arrière-plan.

Tapez ce code dans une nouvelle cellule, puis exécutez-le
from pyspark.sql import SparkSession
from pyspark.sql import functions as F

spark = (SparkSession.builder
         .appName("TP_Spark")
         .master("local[*]")
         .config("spark.sql.shuffle.partitions", "8")
         .getOrCreate())
spark.sparkContext.setLogLevel("ERROR")

sc = spark.sparkContext
print("Version de Spark :", spark.version)
Résultat attendu
Version de Spark : 4.x.x
0.6
Exercice

Combien de cœurs ?

sc.defaultParallelism indique combien de tâches Spark peut exécuter en même temps sur votre machine. Affichez cette valeur.

À vous : complétez les « ... »
print(...)
Besoin d'un indice ?

Remplacez les ... par sc.defaultParallelism.

Voir la solution
Solution
print(sc.defaultParallelism)
Résultat attendu
Un nombre entier, par exemple 4, 8 ou 12 selon votre ordinateur.
0.7
Exercice

Votre premier DataFrame

spark.range(n) crée un petit tableau (un DataFrame) avec une colonne id contenant les entiers de 0 à n-1. Créez-en un de 5 lignes et affichez-le avec .show().

À vous : complétez les « ... »
petit_df = ...
petit_df.show()
Besoin d'un indice ?

spark.range(5)

Voir la solution
Solution
petit_df = spark.range(5)
petit_df.show()
Résultat attendu
+---+
| id|
+---+
|  0|
|  1|
|  2|
|  3|
|  4|
+---+
0.8
Guidé

Ouvrir la Spark UI

Pendant que Spark tourne, il propose une page web de suivi, la Spark UI. L'onglet Jobs y montre chaque calcul lancé, avec sa durée et ses étapes.

Le code ci-dessous affiche un lien vers votre Spark UI, que vous soyez sur le serveur de la classe ou sur votre ordinateur. Cliquez dessus : la page s'ouvre dans un nouvel onglet. Gardez-la ouverte pendant le TP et revenez-y de temps en temps (touche F5) pour voir apparaître vos calculs.

Sur Google Colab, la Spark UI n'est pas accessible : ce n'est pas grave, passez à la suite.

Tapez ce code dans une nouvelle cellule, puis exécutez-le
import os
from IPython.display import HTML

prefixe = os.environ.get("JUPYTERHUB_SERVICE_PREFIX")   # défini sur le serveur de la classe
url = prefixe + "proxy/4040/jobs/" if prefixe else sc.uiWebUrl
HTML(f'<a href="{url}" target="_blank">➜ Ouvrir la Spark UI</a>')
Résultat attendu
Un lien « ➜ Ouvrir la Spark UI ». Il ouvre une page avec les onglets Jobs, Stages, Storage…

Astuce : les flèches ← → du clavier permettent aussi de naviguer.