Dieses Repository enthält meine eingereichten Aufgaben für den Coursera MOOC Big Data Analysis with Scala and Spark, gegeben von der École Polytechnique Fédérale de Lausanne (EPFL) und unterrichtet von Prof. Heather C. Miller.
Die Manipulation großer Datenmengen, die über einen Cluster verteilt sind, mithilfe funktionaler Konzepte ist in der Industrie weit verbreitet und wohl eine der ersten weit verbreiteten industriellen Anwendungen funktionaler Ideen. Dies wird durch die Beliebtheit von MapReduce und Hadoop und zuletzt Apache Spark, einem schnellen, in Scala geschriebenen In-Memory-Framework für verteilte Sammlungen, belegt. In diesem Kurs werden wir sehen, wie das datenparallele Paradigma auf den verteilten Fall ausgeweitet werden kann, wobei Spark durchgehend verwendet wird. Wir werden das Spark-Programmiermodell im Detail behandeln und dabei darauf achten, zu verstehen, wie und wann es sich von bekannten Programmiermodellen wie parallelen Sammlungen mit gemeinsam genutztem Speicher oder sequentiellen Scala-Sammlungen unterscheidet. Anhand praktischer Beispiele in Spark und Scala erfahren wir, wann wichtige Probleme im Zusammenhang mit der Verteilung wie Latenz und Netzwerkkommunikation berücksichtigt werden sollten und wie sie effektiv angegangen werden können, um die Leistung zu verbessern.
Lernergebnisse. Am Ende dieses Kurses werden Sie in der Lage sein:
Empfohlener Hintergrund: Sie sollten über mindestens ein Jahr Programmiererfahrung verfügen. Kenntnisse in Java oder C# sind ideal, aber auch Erfahrungen mit anderen Sprachen wie C/C++, Python, Javascript oder Ruby sind ausreichend. Sie sollten mit der Verwendung der Befehlszeile vertraut sein. Dieser Kurs soll nach der parallelen Programmierung belegt werden: https://www.coursera.org/learn/parprog1.
Startdatum : 4. Januar 2022
Fertigstellungsdatum : 10. Januar 2022
Woche : 1
Lektion : Verwenden der Scala REPL, Verwenden des SBT-Tools
Beschreibung : „Ziel dieser Aufgabe ist es, Sie mit der Infrastruktur und den für diesen Kurs erforderlichen Werkzeugen vertraut zu machen. Auch wenn die Note dieser Aufgabe nicht in Ihre Abschlussnote für den Kurs einfließt, ist es wichtig, dass Sie diese Aufgabe bearbeiten.“ sorgfältig."
Note : 10/10
Woche : 1
Lektion : Grundlagen der RDDs von Spark
Beschreibung : „In dieser Aufgabe verwenden wir unsere Volltextdaten aus Wikipedia, um eine rudimentäre Metrik dafür zu erstellen, wie beliebt eine Programmiersprache ist, um herauszufinden, ob unsere Wikipedia-basierten Rankings irgendeinen Bezug zum beliebten Red Monk haben.“ Rangliste.“
Note : 10/10
Woche : 2 (zweiwöchiger Auftrag)
Lektion : Reduktionsoperationen und verteilte Schlüssel-Wert-Paare
Beschreibung : „Das übergeordnete Ziel dieser Aufgabe ist die Implementierung eines verteilten K-Means-Algorithmus, der Beiträge auf der beliebten Frage-Antwort-Plattform StackOverflow entsprechend ihrer Punktzahl gruppiert. Darüber hinaus sollte dieses Clustering für verschiedene Programmiersprachen parallel ausgeführt werden Ergebnisse sollten verglichen werden.
Note : 10/10
Woche : 4
Lektion : SQL, Datenrahmen und Datensätze
Beschreibung : „Unser Ziel ist es, drei Gruppen von Aktivitäten zu identifizieren: primäre Bedürfnisse (Schlafen und Essen), Arbeit, andere (Freizeit). Und dann zu beobachten, wie Menschen ihre Zeit zwischen diesen drei Arten von Aktivitäten aufteilen und ob wir das sehen können Unterschiede zwischen Männern und Frauen, Erwerbstätigen und Arbeitslosen sowie jungen (unter 22 Jahren), aktiven (zwischen 22 und 55 Jahren) und älteren Menschen.“
Note : 10/10
Damit der Code funktioniert, müssen Ressourcendateien entpackt werden.