Apache Spark est un moteur de traitement distribué conçu pour traiter des données structurées, semi-structurées et non structurées à grande échelle. Pour interagir avec le moteur et définir des opérations de données distribuées, les développeurs utilisent l'API Spark.
L'API Spark DataFrame est au cœur du développement Spark moderne. Un DataFrame organise et traite les données distribuées dans des colonnes nommées, un peu comme une table dans une base de données relationnelle ou une feuille de calcul. Il fournit une interface structurée et déclarative pour analyser des ensembles de données volumineux, tout en optimisant automatiquement l'exécution physique en arrière-plan.
Pour comprendre comment l'API Spark exécute le code sur un réseau distribué, il est important de connaître les composants de base de son architecture d'exécution :
Lorsqu'ils conçoivent des pipelines de données distribués, les développeurs ont le choix entre deux interfaces de programmation principales :
L'API DataFrame est le choix privilégié pour presque tous les cas d'utilisation d'ingénierie de données et de data science. Les ensembles de données distribués résilients (RDD) sont réservés aux scénarios dans lesquels vous devez manipuler des données brutes non structurées (telles que des fichiers binaires ou des flux multimédias) à l'aide d'objets Java personnalisés. Les DataFrames nécessitent moins de code, s'exécutent automatiquement plus rapidement et utilisent la gestion de la mémoire binaire hors tas pour contourner les goulots d'étranglement de la récupération de mémoire de la JVM.
L'API Spark DataFrame simplifie les tâches de traitement, de nettoyage et de préparation de grands volumes de données, qui sont gourmandes en ressources de calcul.
L'API Spark DataFrame sert de base de programmation pour les bibliothèques de traitement avancées de Spark :
Optimisation déclarative
Les DataFrames utilisent un optimiseur de requêtes intégré appelé Catalyst Optimizer. Lorsque vous écrivez du code DataFrame, l'optimiseur réécrit automatiquement le plan d'exécution physique en appliquant le pushdown des filtres, l'élagage des projections et la réorganisation des jointures pour s'exécuter le plus rapidement possible sans réglage manuel.
Flexibilité linguistique
Que votre équipe écrive du code en Python (PySpark), Scala, Java ou R, l'API DataFrame garantit des performances identiques. Le plan d'exécution sous-jacent est compilé et optimisé dans la même couche d'exécution indépendante de la JVM.
Gestion efficace de la mémoire
Les DataFrames utilisent le moteur d'exécution Tungsten pour stocker les données dans un format binaire hors tas hautement compressé. Cela élimine la surcharge liée à la création d'objets JVM et empêche les pauses de récupération de mémoire de figer les threads d'exécuteur.
L'exécution de Spark Open Source nécessite traditionnellement une configuration manuelle des clusters, une gestion des versions logicielles et un appairage de réseaux complexe. Google Cloud simplifie ce processus en proposant Managed Service pour Apache Spark, qui transforme l'exécution distribuée en une plate-forme de données entièrement gérée et adaptée aux entreprises.
Les équipes de données exécutent des charges de travail Spark DataFrame sur Google Cloud à l'aide des fonctionnalités suivantes :
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.