Data Universe
Newsletter
Accueil/Encyclopédie/Apache Spark
Techniques AnalyticsIntermédiaireTraitement distribué

Apache Spark

Moteur de calcul distribué qui traite des données à grande échelle (téraoctets) en parallèle sur un cluster, 100x plus vite que Hadoop MapReduce.

💡Explication simple

Trier 1 million de livres tout seul prendrait des années. Avec 100 personnes qui travaillent en parallèle sur des sous-ensembles différents, ça prend quelques heures. Spark fait pareil avec tes données : il les distribue sur des dizaines ou centaines de machines, les traite en parallèle, et agrège les résultats. La magie : tout ça se fait avec du Python ou SQL familier, Spark gère la distribution.

🏗️Exemple concret

Calcul de statistiques sur 2 milliards de logs applicatifs (2 TB) : avec Python classique, impossible (mémoire insuffisante). Avec PySpark sur un cluster de 20 nuds : 8 minutes. Le code ressemble à du Pandas/SQL mais s'exécute en distribué automatiquement.

Pythonexemple
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, sum, avg

spark = SparkSession.builder.appName("sales-pipeline").getOrCreate()

df = spark.read.parquet("s3://bucket/sales/")

result = (
    df.filter(col("date") >= "2024-01-01")
      .groupBy("region", "product")
      .agg(
          sum("revenue").alias("total_revenue"),
          avg("quantity").alias("avg_qty"),
      )
      .orderBy(col("total_revenue").desc())
)

result.show(20)
result.write.mode("overwrite").parquet("s3://bucket/output/")

∑ Concept clé

RDD (Resilient Distributed Dataset) transformations lazy (map, filter, groupBy) action (collect, count, write) qui déclenche l'exécution.

🎯Quand l'utiliser ?

Données trop grandes pour la mémoire d'une seule machine
Transformations complexes à grande échelle
Feature Engineering ML sur de grands datasets

✅ Avantages

+Très rapide (in-memory processing)
+APIs Python (PySpark), SQL (Spark SQL), R, Java
+0cosystème riche (Streaming, MLlib, GraphX)

⚠️ Limites

Overhead pour les petits datasets (Pandas est plus rapide < 10 Go)
Gestion du cluster complexe (Kubernetes ou cloud managé recommandé)
Débogage difficile sur les erreurs distribuées

🛠️ Outils principaux

Apache Spark (PySpark)
Databricks (Spark managé)
AWS EMR
Azure Synapse (Spark Pool)
Data EngineeringBig DataDistribuéPySpark

Concepts liés

🧪

A/B Testing

Expérimentation

👥

Analyse de cohortes

Analytics Produit

📉

Analyse d'entonnoir (Funnel Analysis)

Analytics Produit

📊

Analyse du panier — Market Basket Analysis

Analytics Retail

← Retour à l'encyclopédie