2015/06/18

MOOC über Big Data & Apache Spark - Teil 2

...Fortsetzung von Teil 1...

3. Woche - Datenstrukturen

In dieser Woche ging es um Datenmanagement. Die beiden Lektionen handelten von strukturierten bzw. semi-strukturierten Daten. Auch die Performance beim IO unterschiedlicher Dateiarten wurde angesprochen.
Lektion 5, über semi-strukturierte Daten, handelte vor allem um tabellarische Strukturen und dem Zusammenspiel von Pandas Dataframes mit Spark. Als Beispiel wurden Server-Log-File Analysen angesprochen und an einer solchen, konnte man sich dann auch im Lab gleich selbst versuchen - konkret an den monatlichen HTTP Requests an einem Server der NASA. Der Schwierigkeitsgrad der Aufgaben wurde schon deutlich erhöht, dafür waren die Aufgabenstellungen auch ganz interessant, weil realitätsnah. 
Die zweite Lektion der Woche handelte von strukturierten Daten. Das war dann natürlich sehr SQL-lastig und alle möglichen joins mit Spark RDD's wurden vorgestellt.

...to be continued...

2015/06/08

MOOC über Big Data & Apache Spark - Teil 1

In diesem Monat war es endlich so weit und der erste von zwei angekündigten MOOCs über Apache Spark wurde auf edX veröffentlicht. Ersterer hat den Titel "Introduction to Big Data with Apache Spark" und meine Erfahrungen dabei werde ich hier teilen. Der Zweite handelt von Maschinellem Lernen mit Spark und wird Ende des Monats starten. Da ich mich in letzter Zeit öfter mal nebenbei mit Spark zu Weiterbildungszwecken beschäftigt habe (Learning Spark: Lightning-Fast Big Data Analysis gelesen und Advanced Analytics with Spark: Patterns for Learning from Data at Scale gerade durcharbeite), passen die MOOCs da auch gerade gut dazu.

1. Woche - Introduction 

Der Einführungskurs in Big Data Analyse und Spark ist letzte Woche gestartet und soll 5 Wochen lange dauern. In Beispielen der Lektionen und Programmieraufgaben wird PySpark (die Python-API von Spark) anstatt Scala verwendet.
In den beiden ersten Lektionen ging es darum, Verständnis zu schaffen, was Big Data ist und welche datenwissenschaftliche Methoden es gibt. Der Inhalt in den Lektionen ist klar strukturiert und wird von Anthony D. Joseph verständlich präsentiert. Da es sich um eine Einführung handelt und die Themen generell komplex und unklar abgegrenzt sind, bleibt es verständlicherweise bei Oberflächlichem.
Die Beurteilung von TeilnehmerInnen erfolgt zu einem kleinen Teil über kurze MC Fragen in den Lektionen und vor allem über die wöchentlichen Labs, in denen programmiert wird. Besonders positiv hervor zu heben ist dabei das Design der Labs. Um die verteilte Ausführung zu simulieren, wird eine bereitgestellte virtuelle Maschine, welche die relevanten Programme ausführt, als Worker installiert und als Treiberprogramm laufen die Labs als IPython Notebooks im lokalen Browser. Der bearbeitete Programmcode wird als Python Skript gepeichert und dann auf edX hochgeladen, um den Code durch einen Autograder überprüfen zu lassen. Die Einrichtung des beschriebenen Setups für die Labs und das Durchführen einer Test Benotung ist dann auch die zu erledigende Aufgabe in der ersten Woche.

2. Woche - Getting started

Die zweite Woche startet mit einer eher theoretischen Lektion über die Voraussetzungen für Computersysteme, um mit Big Data umgehen zu können und wie diese in Spark umgesetzt sind. In der vierten Lektion wird dann endlich in die Logik von Spark eingeführt. RDDs, Transformations, Actions, das Daten Caching, Key-Value RDDs und besondere Variable (Broadcast V und Accumulatoren) werden erklärt.
Im Lab für die zweite Woche kann zuerst ein (unbenotetes) Tutorium absolviert werden. In der eigentlichen Aufgabe werden die Anforderungen graduell gesteigert und es muss ein WordCount Skript zum zählen von Wörtern in einem Textdokument (Texte von Shakespear) erstellt werden. Das Lab versucht praxisnah zu sein, was auch überwiegend gelingt. Die große Herausforderung, an geeignete Daten zu kommen, wird nicht umgesetzt, dafür muss der vorhandene Datensatz aber (zumindest rudimentär) bereinigt und effizient weiterverarbeitet werden. Überhaupt wird bislang in diesem MOOC ein Fokus auf die effiziente Verteilung, Analyse und Verarbeitung der Daten gelegt, was sehr zu begrüßen ist. Sind alle Aufgaben gelöst, bekommt man die 15 häufigst verwendeten Wörtern in Shakespear-Texten präsentiert - da stop words vorher nicht entfernt werden mussten, sind es dann auch die üblichen Verdächtigen ;)

...to be continued...