Partie 0
Mise en place
Installer PySpark, récupérer les données et démarrer Spark.
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 -versiondans un terminal pour vérifier). Lancez ensuitejupyter notebooket 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.
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.
%pip install -q pysparkAucune erreur. Il peut y avoir quelques lignes d'information : c'est normal.
Vérifier l'installation
On importe la bibliothèque et on affiche sa version, pour vérifier que tout est en place.
import pyspark
print("PySpark version", pyspark.__version__)PySpark version 4.x.x (le numéro exact peut varier)
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.
import urllib.request, zipfile, os
urllib.request.urlretrieve("{{ORIGIN}}/fichiers/data.zip", "data.zip")
zipfile.ZipFile("data.zip").extractall(".")
print(os.listdir("data"))['clients.csv', 'texte.txt', 'ventes.csv'] (dans un ordre quelconque)
Créer la SparkSession
La SparkSession est la porte d'entrée de Spark : tout programme PySpark commence par la créer.
appNamedonne 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*) ;Fest 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.
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)Version de Spark : 4.x.x
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.
print(...)Besoin d'un indice ?
Remplacez les ... par sc.defaultParallelism.
Voir la solution
print(sc.defaultParallelism)Un nombre entier, par exemple 4, 8 ou 12 selon votre ordinateur.
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().
petit_df = ...
petit_df.show()Besoin d'un indice ?
spark.range(5)
Voir la solution
petit_df = spark.range(5)
petit_df.show()+---+ | id| +---+ | 0| | 1| | 2| | 3| | 4| +---+
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.
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>')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.