Spark est écrit en utilisant une API de haut niveau
Les calculs sont exécutées sur les nœuds de manière distribuée en utilisant la RAM de chaque nœud
Spark gère automatiquement la répartition de la charge de travail entre les nœuds
Spark divise les données en partitions équitables pour les distribuer afin que les noeuds ne travaillent pas sur les mêmes données
Chaque partition est traitée de manière indépendante par un seul nœud à la fois
Spark utilise le "shuffling" pour réorganiser les données entre les nœuds afin que chaque nœud puisse traiter les partitions qu'il lui a été assignées.
Consolidation des résultats:
Chaque nœud traite ses partitions de manière indépendante et renvoie un résultat partiel
Pour obtenir le résultat final, Spark doit consolider les résultats partiels
Spark utilise des opérations de transformation et d'action pour traiter les données distribuées et consolider les résultats:
Les opérations de transformation sont utilisées pour transformer les données
Les opérations d'action sont utilisées pour déclencher le traitement et renvoyer les résultats
Execution d'un programme spécifique:
possible d'indiquer à Spark d'exécuter un programme spécifique pour une partition donnée plutôt que le programme principal
Utiliser la fonction mapPartitions()
= opération de transformation qui permet d'appliquer une fonction spécifique à chaque partition d'une RDD (Resilient Distributed Dataset)