La manipulation de données volumineuses distribuées sur un cluster à l'aide de concepts fonctionnels est très répandue dans l'industrie et constitue sans doute l'une des premières utilisations industrielles généralisées des idées fonctionnelles. La popularité de MapReduce et de Hadoop, et plus récemment d'Apache Spark, un cadre de collecte distribuée rapide et en mémoire écrit en Scala, en est la preuve. Dans ce cours, nous verrons comment le paradigme des données parallèles peut être étendu au cas distribué, en utilisant Spark. Nous couvrirons 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 en mémoire partagée ou les collections séquentielles en Scala. A travers des exemples pratiques en Spark et Scala, nous apprendrons quand les questions importantes liées à la distribution comme la latence et la communication réseau doivent être prises en compte et comment elles peuvent être traitées efficacement pour améliorer les performances. Objectifs d'apprentissage. A la fin de ce cours, vous serez capable de : - lire des données à partir d'un stockage persistant et les charger dans Apache Spark, - manipuler des données avec Spark et Scala, - exprimer des algorithmes pour l'analyse des données dans un style fonctionnel, - reconnaître comment éviter les mélanges et les recalculs dans Spark, Contexte recommandé : Vous devez avoir au moins un an d'expérience en programmation. La maîtrise de Java ou de C# est idéale, mais une expérience dans d'autres langages tels que C/C++, Python, Javascript ou Ruby est également suffisante. Vous devez avoir une certaine familiarité avec l'utilisation de la ligne de commande. Ce cours est destiné à être suivi après Parallel Programming : https://www.coursera.org/learn/parprog1. Notez que cette version du cours utilise Scala 2.13. Vous pouvez trouver une version plus récente du cours qui utilise Scala 3 ici : https://www.coursera.org/learn/scala-spark-big-data
Démarrez avec Scala sur votre ordinateur. Complétez un exemple de travail pour vous familiariser avec notre méthode unique de soumission des travaux. Cette semaine, nous allons combler le fossé entre le parallélisme des données dans le scénario de mémoire partagée (appris dans le cours de programmation parallèle, prérequis) et le scénario distribué. Nous examinerons les problèmes importants qui se posent dans les systèmes distribués, comme la latence et les pannes. Nous continuerons à couvrir les bases de Spark, un framework orienté fonction pour le traitement des big data en Scala. Nous terminerons la première semaine en mettant en pratique ce que nous avons appris sur Spark en analysant immédiatement un ensemble de données du monde réel.
Inclus
7 vidéos6 lectures3 devoirs de programmation
Afficher les informations sur le contenu du module
7 vidéos•Total 105 minutes
Introduction, Logistique, Ce que vous apprendrez•15 minutes
Data-Parallel à Data-Parallel distribué•10 minutes
Latence•25 minutes
RDDs, la collection distribuée de Spark•9 minutes
RDDs : Transformation et actions•16 minutes
L'évaluation dans Spark : Contrairement aux collections Scala !•21 minutes
La topologie des grappes est importante !•8 minutes
6 lectures•Total 55 minutes
Configuration des outils (Veuillez lire)•10 minutes
Didacticiel SBT et soumission des travaux (à lire)•10 minutes
Aide-mémoire•10 minutes
Tutoriel Scala•10 minutes
Guide de style Scala•10 minutes
Travailler sur les devoirs•5 minutes
3 devoirs de programmation•Total 540 minutes
Wikipédia (en anglais)•180 minutes
Exemple•180 minutes
Wikipedia (version d'audit)•180 minutes
Opérations de réduction et paires clé-valeur distribuées
Module 2•7 heures à terminer
Détails du module
Cette semaine, nous allons nous pencher sur un type particulier de RDD appelé RDD par paires. Avec ce type de RDD spécialisé en main, nous couvrirons les opérations essentielles sur les grands ensembles de données, telles que les réductions et les jointures.
Inclus
4 vidéos2 devoirs de programmation
Afficher les informations sur le contenu du module
4 vidéos•Total 59 minutes
Opérations de réduction•15 minutes
Paire de RDD•6 minutes
Transformations et actions sur les paires de RDD•20 minutes
Adhésion•17 minutes
2 devoirs de programmation•Total 360 minutes
StackOverflow (mission de 2 semaines)•180 minutes
StackOverflow (mission de 2 semaines) (version d'audit)•180 minutes
Partitionnement et brassage
Module 3•1 heure à terminer
Détails du module
Cette semaine, nous examinerons certaines des implications en termes de performances de l'utilisation d'opérations telles que les jointures. Est-il possible d'obtenir le même résultat sans avoir à payer les frais généraux liés au déplacement des données sur le réseau ? Nous répondrons à cette question en examinant comment nous pouvons partitionner nos données pour obtenir une meilleure localisation des données, ce qui nous permettra d'optimiser certains de nos travaux Spark.
Inclus
4 vidéos
Afficher les informations sur le contenu du module
4 vidéos•Total 57 minutes
Le brassage des cartes : Qu'est-ce que c'est et pourquoi c'est important ?•14 minutes
Cloisonnement•15 minutes
Optimisation avec les partitionneurs•11 minutes
Dépendances larges ou étroites•17 minutes
Données structurées : SQL, cadres de données et ensembles de données
Module 4•8 heures à terminer
Détails du module
Grâce à notre nouvelle compréhension du coût du mouvement des données dans un travail Spark et à notre expérience de l'optimisation des travaux pour la localité des données la semaine dernière, nous nous concentrerons cette semaine sur la façon dont nous pouvons plus facilement réaliser des optimisations similaires. Les données structurées peuvent-elles nous aider ? Nous examinerons Spark SQL et son puissant optimiseur qui utilise la structure pour appliquer des optimisations impressionnantes. Nous aborderons ensuite les DataFrames et les Datasets, qui nous permettent de combiner les RDD avec les puissantes optimisations automatiques de Spark SQL.
Inclus
5 vidéos2 devoirs de programmation
Afficher les informations sur le contenu du module
5 vidéos•Total 133 minutes
Données structurées et non structurées•15 minutes
Spark SQL•17 minutes
Cadres de données (1)•27 minutes
Cadres de données (2)•30 minutes
Ensembles de données•44 minutes
2 devoirs de programmation•Total 360 minutes
Utilisation du temps•180 minutes
Utilisation du temps (version d'audit)•180 minutes
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’
Pour accéder aux supports de cours, aux devoirs et pour obtenir un certificat, vous devez acheter l'expérience de certificat lorsque vous vous inscrivez à un cours. Vous pouvez essayer un essai gratuit ou demander une aide financière. Le cours peut proposer l'option "Cours complet, pas de certificat". Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.
Que recevrai-je si j'achète le certificat ?
Lorsque vous achetez un certificat, vous avez accès à tous les supports de cours, y compris les devoirs notés. Une fois le cours terminé, votre certificat électronique sera ajouté à votre page de réalisations. Vous pourrez alors l'imprimer ou l'ajouter à votre profil LinkedIn.
Une aide financière est-elle disponible ?
Oui, pour certains programmes de formation, vous pouvez demander une aide financière ou une bourse si vous n'avez pas les moyens de payer les frais d'inscription. Si une aide financière ou une bourse est disponible pour votre programme de formation, vous trouverez un lien pour postuler sur la page de description.