🚀 Êtes-vous fait pour la Data ? Découvrez-le en 1 min

Dévoilée : la Python Data Source API dans Spark 4.0 qui change tout

-
2
 m de lecture
-
Logo Apache Spark avec symbole étoile orange, représentant le moteur open source de traitement des données.

Apache Spark 4.0 a introduit une Python Data Source API révolutionnaire qui permet aux développeurs de créer des connecteurs de données personnalisés entièrement en Python, éliminant le besoin préalable de compétences en Java ou Scala. La nouvelle API, publiée comme fonctionnalité phare de la dernière version de Spark, permet aux développeurs Python de développer des connecteurs pour des workloads batch et streaming tout en tirant parti d’Apache Arrow pour des performances accrues par une lecture de données vectorisée.

La nouvelle fonctionnalité représente un changement majeur dans la manière dont les développeurs peuvent étendre les capacités de connexion aux données de Spark. Selon la documentation officielle d’Apache Spark, l’API s’articule autour de la DataSource base class, que les développeurs peuvent sous-classer pour créer des connecteurs prenant en charge à la fois les workloads batch et streaming.

Auparavant, la création de connecteurs Spark personnalisés exigeait une expertise en Java ou Scala, créant une barrière importante pour les développeurs Python qui constituent une part importante de la base d’utilisateurs de Spark. La nouvelle API supprime entièrement cette limitation, permettant d’écrire la logique des connecteurs uniquement en Python tout en conservant des performances élevées grâce aux vectorized reads utilisant des objets pyarrow.RecordBatch.

Architecture technique et avantages en termes de performances

Le framework propose plusieurs classes principales que les développeurs implémentent pour définir la fonctionnalité de leur connecteur. La classe DataSource sert de point d’entrée principal, avec des méthodes pour fournir des readers et des writers pour différents types de requêtes. Le DataSourceReader gère la logique de lecture et peut renvoyer les données sous forme d’objets Row ou, pour des performances accrues, sous forme d’objets Arrow RecordBatch afin de minimiser le surcoût de sérialisation.

Selon le Python Data Source Tutorial d’Apache Spark, le processus d’implémentation implique de développer les classes nécessaires, de gérer les dépendances avec soin pour garantir leur disponibilité sur les Spark executors, et d’enregistrer la data source personnalisée auprès de la session Spark. Une fois enregistrée, les développeurs peuvent invoquer le connecteur via son nom court dans la méthode format().

Bien que la documentation d’Apache Spark cite les vectorized reads comme un avantage de performance majeur, des benchmarks spécifiques comparant les connecteurs Python à leurs homologues JVM n’étaient pas fournis au lancement. Cependant, la capacité à traiter les données avec Apache Arrow est conçue pour réduire substantiellement l’I/O et le surcoût de sérialisation, répondant à l’une des préoccupations de performance traditionnelles du traitement de données en Python.

Impact sur l’industrie et perspectives d’avenir

Databricks, un contributeur majeur à l’écosystème Spark, a déjà intégré l’API dans son runtime et prétesté de nombreuses fonctionnalités de Spark 4.0 dans des versions antérieures de la plateforme, selon le Databricks Blog. Cette adoption précoce signale un fort soutien de l’industrie pour cette nouvelle capacité.

En tant que nouveau framework publié avec Spark 4.0, l’adoption généralisée par les développeurs de connecteurs tiers devrait intervenir progressivement. L’inclusion de l’API comme fonctionnalité phare démontre l’engagement du projet Apache Spark à démocratiser la connectivité des données pour l’écosystème Python, la positionnant comme une pierre angulaire du développement futur de Spark.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?