Ce référentiel contient mes devoirs soumis pour le Coursera MOOC Big Data Analysis avec Scala et Spark, donné par l'École Polytechnique Fédérale de Lausanne (EPFL) et enseigné par le professeur Heather C. Miller.
La manipulation de Big Data réparties sur un cluster à l’aide de concepts fonctionnels est monnaie courante dans l’industrie et constitue sans doute l’une des premières utilisations industrielles généralisées d’idées fonctionnelles. En témoigne la popularité de MapReduce et Hadoop, et plus récemment d'Apache Spark, un framework de collections distribuées en mémoire rapide écrit en Scala. Dans ce cours, nous verrons comment le paradigme du parallèle de données peut être étendu au cas distribué, en utilisant Spark partout. Nous aborderons le modèle de programmation de Spark en détail, en prenant soin de comprendre comment et quand il diffère des modèles de programmation familiers, comme les collections parallèles à mémoire partagée ou les collections Scala séquentielles. Grâce à des exemples pratiques dans Spark et Scala, nous apprendrons quand des problèmes importants liés à la distribution, tels que la latence et la communication réseau, doivent être pris en compte et comment ils peuvent être résolus efficacement pour améliorer les performances.
Résultats d'apprentissage. A la fin de ce cours, vous serez capable de :
Expérience recommandée : Vous devez avoir au moins un an d’expérience en programmation. La maîtrise de Java ou C# est idéale, mais une expérience avec d'autres langages tels que C/C++, Python, Javascript ou Ruby est également suffisante. Vous devriez avoir une certaine familiarité avec l'utilisation de la ligne de commande. Ce cours est destiné à être suivi après la programmation parallèle : https://www.coursera.org/learn/parprog1.
Date de début : 4 janvier 2022
Date de réalisation : 10 janvier 2022
Semaine : 1
Leçon : Utilisation de Scala REPL, Utilisation de l'outil SBT
Description : "Le but de ce devoir est de vous familiariser avec l'infrastructure et les outils requis lors de ce cours. Même si la note de ce devoir sera exclue de votre note finale pour le cours, il est important que vous accomplissiez ce devoir. soigneusement."
Note : 10 / 10
Semaine : 1
Leçon : Bases des RDD de Spark
Description : "Dans cette mission, nous utiliserons nos données en texte intégral provenant de Wikipédia pour produire une mesure rudimentaire de la popularité d'un langage de programmation, dans le but de voir si nos classements basés sur Wikipédia ont un rapport avec le populaire Red Monk. classements."
Note : 10 / 10
Semaine : 2 (mission de deux semaines)
Leçon : Opérations de réduction et paires clé-valeur distribuées
Description : "L'objectif global de cette mission est d'implémenter un algorithme k-means distribué qui regroupe les publications sur la populaire plateforme de questions-réponses StackOverflow en fonction de leur score. De plus, ce clustering doit être exécuté en parallèle pour différents langages de programmation, et le les résultats doivent être comparés.
Note : 10 / 10
Semaine : 4
Leçon : SQL, Dataframes et Datasets
Description : "Notre objectif est d'identifier trois groupes d'activités : les besoins primaires (dormir et manger), le travail, les autres (loisirs). Et ensuite d'observer comment les gens répartissent leur temps entre ces trois types d'activités, et si l'on peut voir différences entre hommes et femmes, salariés et chômeurs, jeunes (moins de 22 ans), actifs (entre 22 et 55 ans) et seniors."
Note : 10 / 10
Les fichiers de ressources doivent être décompressés pour que le code fonctionne.