Comment fonctionne la bibliothèque PySpark ?
PySpark, l'interface Apache Spark en Python est largement utilisée en Data Science pour l'analyse de données ! Découvrez notre formation Data Scientist.
C’est un langage de programmation dont on entend moins parler que Python ou Javascript pourtant Scala est très utile dans certains secteurs notamment parce que c’est un des langages fondamental dans la programmation fonctionnel et que c’est le langage utilisé dans la construction de Spark. Revenons donc sur les raisons principales d’apprendre Scala lorsque vous êtes un professionnel de la Data.
Pour cet article, nous tenons la plupart de nos statistiques des études réalisé par Stackoverflow nommé 2020 Developer Survey. Stackoverflow est le plus grand forum dédié aux développeurs avec plus 100 millions de visites mensuelles sur leur site.
Le Big Data est une composante majeure des compétences d’un Data Scientist ou Data Engineer. Un des frameworks les plus connus en Big Data est Spark ! L’avantage de ce framework est sa rapidité à exécuter des requêtes en mettant en mémoire les données.
Devinez en quoi Spark est écrit ? Scala ! C’est pour cela que si vous avez une grande dimension Big Data dans votre job, vous tomberez un moment sur Scala.
Un autre framework utilisé est celui d’Hadoop mais Spark reste plus utilisé comme le montre le graphique ci-dessous qui montre la popularité des frameworks parmi les professionnels de la Big Data où le voit que 5.4% des développeurs utilisent Spark contre 4.7% pour les utilisateurs de Hadoop.
Vous pouvez tout de même utiliser Spark dans la suite Hadoop et de ce fait utiliser Scala. Vous ne perdrez donc pas votre temps à apprendre ce langage même si votre entreprise a une infrastructure fondée sur Hadoop.
Scala est un langage relativement rare mais il n’est pas pour autant moins demandé. De ce fait Scala fait partie des technologies qui rapportent le plus. Au global, le salaire médian des 40 000 répondants qui font du Scala est de 76 000$ par an. Bien que la monnaie soit le dollar américain, les répondants viennent du monde entier.
En comparaison, le salaire médian des développeurs Python avoisine les 60 000$ / an. Ajouter Scala comme corde à son arc est donc un vrai boost pour sa carrière.
En effet, les grands groupes ont souvent des infrastructures qui découlent de Java car ils utilisent très souvent la JVM (Java Virtual Machine). Etant donné que ces mêmes groupes ont des grands volumes de données à gérer, ils passent sur les technologies liées au Big Data et il est plus simple d’utiliser du Spark Scala que par exemple du PySpark (la version Python de Spark) étant donné que Scala est un langage assez proche de Java qui utilise aussi la JVM comme interpréteur.
Si vous venez de l’univers Data, il y a de fortes chances que vous sachiez déjà coder en Python. Ce qui est une très bonne base pour apprendre Scala. Pour information, Scala est 10x plus rapide que Python en termes de vitesse d’exécution (ce qui constitue d’ailleurs une autre raison pour laquelle Scala est utilisé pour le Big Data).
Bien que Scala soit plus complexe que Python à apprendre, vous ne serez pas complètement perdu par rapport à sauter le pas directement vers du Java par exemple. En effet, vous pouvez écrire du Scala en mode programmation orientée objet, ce qui ressemble beaucoup à ce que vous faites déjà en Python.
Hello World en Scala
Hello World en Python
Si vous avez appris à coder en Python, vous avez appris à utiliser le paradigme de programmation qu’est l’orienté objet. Le principe est simple que vous pouvez considérer des éléments de codes comme des objets que vous pouvez incorporer dans des fonctions (appelées méthodes) qui elle-même peuvent être incorporées dans des classes. N’hésitez pas à lire notre article sur la programmation orientée objet.
Bien que vous puissiez faire de la programmation orientée objet en Scala, il existe un autre paradigme dans lequel vous pouvez coder qui est la programmation fonctionnelle qui est plutôt un système déclaratif basé sur l’évaluation de fonctions. Ce paradigme est aussi très utilisé et permet d’optimiser beaucoup le temps de calcul pour certains types de tâches.
Si vous prévoyez d’évaluer dans votre carrière, l’apprentissage de Java peut être à considérer étant donné que c’est un langage très utilisé dans les grands groupes (comme les petits) pour gérer leurs infrastructures. En plus d’être open-source, c’est en effet un langage que Github considère comme l’un des plus populaires lorsqu’il s’agit de la programmation d’application web client-serveur.
Mais surtout c’est un langage extrêmement généraliste que vous pouvez utiliser partout dès que vous avez besoin de créer des applications robustes. Des entreprises comme Uber, Amazon, Google, Netflix ou encore Slack utilisent Java tous les jours dans leur produit.
Il existe un certain nombre de formations liées à Scala, nous vous conseillons de choisir parmi celles qui incorpore Scala dans une problématique de Big Data car c’est un bon moyen d’avoir une introduction “douce” au langage tout en comprenant les enjeux liés à l’apprentissage de celui-ci.
Si vous tapez “formation Scala” sur Google, vous verrez qu’une formation coûte aux alentours de 2000€ pour 3 jours.
Si vous cherchez une formation en Scala, n’hésitez pas à regarder notre formation intensive en Data Engineering dans laquelle nous commençons par Scala pour aller rapidement vers du Spark Scala. Si vous venez de l’univers Python ou R, cela constitue une bonne introduction au langage et vous mènerez des projets qui vous feront comprendre l’utilité du langage sans pour autant vous noyer dans des considérations trop complexes, au départ, de programmation fonctionnelle. L’objectif est de vous rendre opérationnel en entreprise et que vous commenciez à utiliser Scala dans la gestion de problématiques Big Data.