Vous êtes sur la page 1sur 24

Big Data Languages

Chapitre 1 : Vu sur les langages


les plus u,lisés en Big Data

1
Année Universitaire : 2021-2022 Prof. ERRAJI: Big Data Languges
Aperçu : Objectifs du cours

Apprendre :
• Les bases de la programma1on en Scala et python.
• Les aspects avancés de la programma1on en Scala.
• Les avantages de la programma1on fonc1onnelle avec Scala et sa
robustesse pour la programma1on parallèle.
• Les principaux cas d’usages de Scala en Big data.
• La programma1on parallèle avec Scala sur Spark
• La programma1on parallèle avec Scala sur Hadoop.
• Bonus: parallèle jobs python, pyspark, Hadoop avec python

Prof. ERRAJI: Big Data Languges 2


Aperçu : Contenu

ü12 heures de cours, 4 heures TD, 10 heures TP et 2 heures d’évalua8on

• Vu sur les langages les plus u,lisés en Big Data


• Introduc,on à Scala
• Historique de Scala : a Scalable Language.
• Aperçu de Scala : un langage orienté objet, fonc=onnel, à typage sta=que et
extensible.
• Pourquoi Scala ?
• Comparaison de Scala avec les autres langages de programma=on.
• Votre première interac,on avec Scala
• Apprendre à u=liser l’interpréteur Scala.
• Présenta=on de la syntaxe Scala.
• Défini=on de quelques variables et fonc=ons.
• Votre premier script Scala.

Prof. ERRAJI: Big Data Languges 3


Aperçu : Contenu

ü12 heures de cours, 4 heures TD, 10 heures TP et 2 heures


d’évalua8on

• Les bases du langage Scala : Par1e 1


• Les paradigmes de programma-on fonc-onnel et orienté objet dans Scala.
• La compila-on et l’exécu-on.
• La syntaxe et les éléments de base de Scala : les variables, les structures de
contrôle, etc.
• Les classes et les objets.
• Les types de base et les opéra-ons.
• Les objets fonc-onnels.
• Les fonc-ons et les closures.
• Contrôle de l’abstrac-on.

Prof. ERRAJI: Big Data Languges 4


Aperçu : Contenu

ü12 heures de cours, 4 heures TD, 10 heures TP et 2 heures d’évalua8on

• Les bases du langage Scala : Par,e 2


• Héritage et composi=on.
• Hiérarchie de Scala.
• Les Traits.
• Les packages et les imports.
• Les asser=ons et les unités de test.
• Les listes et les collec=ons.
• StaMulObjects.
• Les annota=ons.
• Les principales API de Scala.
• Ges3on et automa3sa3on de produc3on des projets Scala avec SBT.

Prof. ERRAJI: Big Data Languges 5


Aperçu : Contenu

ü12 heures de cours, 4 heures TD, 10 heures TP et 2 heures d’évalua8on

• Aspects avancés de Scala


• Combinaison de Scala et Java.
• Le modèle d’acteur et la programma=on concurrente.
• Combinatorparsing.
• Scala et Spark
• Introduc=on à Spark.
• RDDs : Resilient Distributed Datasets.
• Les opéra=ons de base de Spark.
• Les transforma=ons et les ac=ons.
• Persistance des RDDs : quel niveaau de stockage choisir.
• Les variables partagées.
• Exemple de Spark.

Prof. ERRAJI: Big Data Languges 6


Aperçu : Contenu

ü12 heures de cours, 4 heures TD, 10 heures TP et 2 heures


d’évalua8on

• Scala et Hadoop
• Présenta-on de la librairie Scoobi : a Scala Library for Hadoop.
• Exemple d’u-lisa-on de la librairie Scoobi sur Hadoop.
• Spark streaming
• Spark ml
• Apache KaFa

Prof. ERRAJI: Big Data Languges 7


Les professionnels du Big Data, notamment ceux qui
viennent d’intégrer cet univers ont à prendre de nombreuses
décisions, incluant le choix du langage de programma>on.
Comprendre le problème du Big Data et définir l’architecture
nécessaire pour le résoudre ne suffit plus. L’exécu>on doit
également être parfaite et c’est là tout l’intérêt de bien
choisir le langage. Voici les langages de programma>on les
plus couramment u>lisés et les plus efficaces pour
développer des solu>ons Big Data.

Prof. ERRAJI: Big Data Languges 8


Chapitre 1 Vu sur les langages les plus u,lisés
en Big Data

qScala
qPython
qR
qJava
qGo
qC++

Prof. ERRAJI: Big Data Languges 9


Scala

• Scala est un beau croisement des paradigmes de programma8on


orientée objet et fonc8onnelle. Il est rapide, robuste, et très
populaire auprès de nombreux professionnels du Big Data. Les
frameworks Apache Spark et Apache KaFa par exemple ont été
construits sur Scala, ce qui témoigne de sa puissance.

Prof. ERRAJI: Big Data Languges 10


Scala

• Scala fonc8onne sur la JVM, ce qui signifie que les codes écrits en
Scala peuvent être facilement u1lisés dans un écosystème Big Data
basé sur Java. Scala est beaucoup moins verbeuse par rapport à
Java. Vous pouvez écrire des centaines de lignes de code Java en
moins de 15 lignes dans Scala. Scala présente cependant un aspect
néga1f : sa courbe d’appren8ssage abrupte. Par rapport à des
langages comme Go et Python, Scala pourrait décourager les
débutants.

Prof. ERRAJI: Big Data Languges 11


Python

• Selon une récente enquête de Stack Overflow Developer Survey, la


croissance de Python fait par1e des plus rapides en 2018 parmi tous
les langages de programma8on. Sa nature polyvalente traduit un
large éventail de cas d’u1lisa1on dont la programma8on Big Data, un
domaine d’applica1on majeur.

Prof. ERRAJI: Big Data Languges 12


Python

• Pandas, NumPy, SciPy sont toutes basées sur Python. Ces


bibliothèques pour l’analyse et la manipula1on de données sont de
plus en plus u1lisées en Big Data pour ne[oyer et manipuler de gros
volumes de données. Les frameworks d’appren8ssage automa8que
et d’appren8ssage profond les plus populaires comme scikit-learn,
Tensorflow et bien d’autres, sont également écrits en Python et
trouvent de plus en plus d’applica1ons dans l’écosystème Big Data.

Prof. ERRAJI: Big Data Languges 13


Python

Avantages et limites de Python


• Python est certes très facile à prendre en main, mais il est lent.
Aussi, les professionnels du Big Data misent davantage sur des
systèmes construits avec des langages tels que Java ou Scala qui sont
plus rapides et plus robustes que ceux construits avec Python.

Prof. ERRAJI: Big Data Languges 14


Python

Avantages et limites de Python


• Cependant, Python présente des qualités qui viennent compenser
ces aléas. Python étant avant tout un langage de script, le codage
interac8f et le développement de solu8ons analy8ques pour le Big
Data deviennent très faciles. Python peut s’intégrer facilement aux
frameworks Big Data existants comme Apache Hadoop et Apache
Spark. Cela permet aux professionnels d’effectuer des analyses
prédic1ves à grande échelle sans aucun problème.

Prof. ERRAJI: Big Data Languges 15


R

• Communément appelé langage des sta8s8ques, R est u1lisé


pour créer des modèles qui peuvent être u8lisés pour une analyse
de données efficace et précise. R est propulsé par un vaste
référen1el de packages R (CRAN, également appelé Comprehensive R
Archive Network) et met à votre disposi1on à peu près tous les types
d’ou1ls pour accomplir n’importe quelle tâche dans le traitement du
Big Data. Cela va de l’analyse à la visualisa1on des données. R peut
être intégré de manière transparente avec les frameworks populaires
comme Apache Hadoop et Apache Spark entre autres, ceci pour le
traitement et l’analyse du Big Data.

Prof. ERRAJI: Big Data Languges 16


R

• U1liser R comme langage de programma8on pour le Big


Data présente un inconvénient : il n’est pas très polyvalent. Cela
signifie que le code écrit en R n’est pas déployable en produc1on et
doit généralement être traduit dans un autre langage de
programma1on tel que Python ou Java. Cela dit, si votre objec1f est
de créer uniquement des modèles sta8s8ques pour l’analyse Big
Data, R se révèle être un excellent choix.

Prof. ERRAJI: Big Data Languges 17


JAVA

• Et puis il y a le bon vieux Java. Certains des frameworks Big Data


tradi1onnels tels qu’Apache Hadoop ainsi que tous les ou1ls de son
écosystème sont tous basés sur Java . Ce dernier est toujours u1lisé
dans de nombreuses entreprises. Java est le langage le plus stable et
prêt pour la produc8on parmi tous les langages susmen1onnés.
Choisir Java pour développer les applica1ons Big Data donne la
possibilité d’u1liser un large écosystème d’ou1ls et de bibliothèques
pour l’interopérabilité, la surveillance et bien plus encore.

Prof. ERRAJI: Big Data Languges 18


JAVA

• La verbosité de Java reste son inconvénient majeur. Si vous devez


écrire des centaines de lignes de code en Java pour une tâche,
comptez 15 à 20 lignes de code en Python ou Scala. Cependant,
l’introduc1on des fonc1ons lambda dans Java 8 vient faciliter les
choses. Java ne prend pas non plus en charge le développement
itéra8f, contrairement aux langages plus récents comme Python.
Quoi qu’il en soit, Java reste un concurrent sérieux.

Prof. ERRAJI: Big Data Languges 19


GO

• Enfin, il y a Go, l’un des langages de programma8on à la croissance


la plus rapide de ces derniers temps. Go est conçu par un groupe
d’ingénieurs de chez Google qui voulaient autre chose que C ++. Il
alimente beaucoup d’ou8ls u8lisés dans l’infrastructure Big Data, y
compris Kubernetes, Docker et bien d’autres.

Prof. ERRAJI: Big Data Languges 20


GO

• Go est rapide, facile à apprendre et assez facile à développer avec


des applica1ons. Par ailleurs, alors que les entreprises envisagent de
créer des systèmes d’analyse de données pouvant fonc1onner à
grande échelle, des systèmes basés sur Go sont u1lisés pour intégrer
l’appren8ssage automa8que et le traitement parallèle des données.
Il est également possible d’interfacer facilement d’autres langues
avec des systèmes basés sur Go.

Prof. ERRAJI: Big Data Languges 21


GO

• Il y a aussi Julia, SAS ou encore MATLAB mais ces langages révèlent


de nombreuses lacunes par rapport aux autres, que ce soit la
vitesse, l’efficacité, la facilité d’u1lisa1on, la documenta1on ou le
sou1en de la communauté.

Prof. ERRAJI: Big Data Languges 22


Quel langage choisir ?

• Le facteur le plus important dans le choix d’un langage de


programma1on pour un projet Big Data est l’objec1f à a[eindre. Si
l’organisa1on manipule des données, crée des analyses et teste des
modèles d’appren1ssage automa1que, elle choisira probablement le
langage le mieux adapté à ce[e tâche. Si l’organisa1on cherche à
opéra1onnaliser une applica1on Big Data ou Internet des objets
(IoT), il existe un autre ensemble de langages qui excellent dans ce
domaine.

Prof. ERRAJI: Big Data Languges 23


Fin du chapitre

Protect pdf from copying with Online-PDF-No-Copy.com Prof. ERRAJI: Big Data Languges 24

Vous aimerez peut-être aussi