Spark 3.0 Fonctionnalités avec Examples

Spark 3.0 a été publiée avec une liste de nouvelles fonctionnalités incluant l’amélioration des performances en utilisant l’exécution adaptative des requêtes ou EAR (en anglais : Adaptive Query Execution, ou AQE), la lecture des fichiers binaires, l’amélioration de la prise en charge de SQL et Python, Python 3.0, Hadoop 3.0, le support ACID pour n’en citer que quelques uns.

Dans cet article, je vais essayer de vous présenter les nouvelles fonctionnalités avec un example à l’appui à chaque fois. Il s’agit du premier article portant sur Spark 3.0. J’en écrirai d’autres au fur et à mesure pour compléter cette série.

Les fonctionnalités abordées dans cet article

  • Exécution Adaptative des Requêtes, ou EAR
  • Mise à jour de la version des langues
  • Nouvelle Interface Utilisateur pour le Structure Streaming
  • Lire des fichiers de données binaires
  • [todo continuer]

Exécution Adaptive des Requêtes

L’Exécution Adaptive des Requêtes (EAR) est l’une des meilleures fonctionnalités de Spark 3.0 qui réoptimise et ajuste les plans de requêtes en fonction des données statistiques collectées pendant l’exécution de la requête.

Avant la version 3.0, Spark faisait de l’optimisation en créant un plan d’exécution avant que la requête ne soit exécutée. Une fois que l’exécution commencée, Spark ne faisait pas de modification en plus qui soit basé sur les métriques collectées pendant l’exécution. l’EAR comble cette lacune en appliquant un second niveau d’optimisation en se basant sur les métriques qu’il a à chaque étape.

Par défaut, l’exécution Adaptive des Requêtes est désactivée. Pour l’activer, il suffit de définir la propriété de configuration spark.sql.adaptive.enabled à true.

Après activation de l’AER, Spark effectue de meilleures performances (x2) que l’on peut constater sur l’outil TPC-DS, par rapport à Spark 2.4.

Spark 3.0 arrive avec trois fonctionnalités importantes dans AER :

  • Fusion de partitions post-shuffle qui déterminent dynamiquement le nombre optimal de partitions
  • Conversion de la jointure de type “sort-merge” en jointure type “Brodcast”
  • Optimisation de la jointure de type “skew”.

L’Exécution Adaptive des Requêtes est un sujet à part entière. C’est pourquoi j’ai créé un autre article qui en parle plus en détail : [AQ E et ses fonctionnalités](link todo).

Leave a Reply