In diesem 2-tägigen Seminar lernen Sie als Data_Scientist:in Apache Spark mit PySpark zur Bearbeitung von Big Data kennen. Gegenüber Apache Hadoop bietet Apache Spark – natürlich immer in Abhängigkeit von der vorhandenen Hardware – außerordentliche Performance-Vorteile durch eine intensive Speichernutzung: Computations in the memory of the nodes in a cluster.
Ein zentraler Vorteil von Apache Spark ist, dass es sich direkt mittels Python programmieren lässt - dazu steht PySpark zur Verfügung. Python stellt im Bereich ML und Data Science ja eine der zentralen Programmiersprachen dar, so dass Data ScientistInnen direkt mit Apache Spark arbeiten können. Durch den Einsatz von Jupyter kann interaktiv gearbeitet werden, außerdem ist so eine gute Dokumentation der durchgeführten Arbeiten direkt möglich.
Während des Seminars wird alles direkt praktisch in einem pySpark-System erlernt. Dazu kann entweder die Community Edition von Databricks genutzt werden oder eine durch masem erstellte virtuelle Maschine, die alle zentralen Komponenten enthält (Apache Hadoop/HDFS, Apache HIVE und Apache Spark mit PySpark und Jupyter). Buchen Sie ein Inhouse-Seminar, so arbeiten wir gerne auch auf ihrem System!
Inhalte: Wir beginnen zuerst mit den Kernfragen: Wann sprechen wir von Big Data (die drei Vs)? Wie wird Big Data gespeichert (HDFS)? Wie funktioniert der Map-Reduce-Ansatz zur Analyse von Big Data? Warum ist Apache Spark so viel schneller als Apache Hadoop und einfacher zu bedienen (PySpark)? Danach geht es dann direkt praktisch in PySpark mit Jupyter Notebooks los: Wir erstellen zusammen einen ersten kleinen praktischen Job.
RDDs (resilient distributed datasets) stellen das Kernkonzept von Apache Spark dar. Sie lernen, was RDDs sind und wie diese analysiert werden können, hier stellen die lambda-Funtkionen ein zentrales Konzept dar. Es werden die klassischen Funktionen eingesetzt: map, filter, ReduceByKey, SortByKey und Collect, alles Techniken, die Sie bereits in den Grundlagen zum Map-Reduce-Ansatz kennengelernt haben!
Da viele Daten auch in Form von relationalen Tabellen gespeichert sind, gibt es das DataFrame-Konzept in PySpark. Und diese können dann auch mit den klassischen Verfahren zur Analyse von relationen Tabellen analysiert und bearbeitet werden: mit PySpark SQL! Da relationale Tabellen auch die Kernstruktur (dann in Form von Design Matrizen) für viele Machine Learning Algorithmen darstellen, liegt nun der Fokus auf diesem Datentyp.
Neben PySpark SQL-Befehlen gibt es immer auch äquivalente Python-Befehle, so dass sich hier erfahrene Data ScientistInnen auch direkt wohl fühlen. Diese Befehle werden dann auch intensiv im Data Engineering eingesetzt und hier erprobt: Auswahl von Fällen und Variablen; Transformation von Variablen; Behandlung fehlender Werte etc.; Aufteilen des Datensatzes in Test- und Trainingsdatensätze etc.
Da die Designmatrix in rein numerischer Form vorliegen muss, stellt das Behandeln kategorialer Daten ein zentrales Thema im Data Engineering dar. Hier sind einige PySpark-typische Schritte durchzuführen: Zuerst werden die Kategorien mittels String Indexer in numerische Werte zerlegt, im nächsten Schritt wird dann aus diesen mittels One Hot Encoder numerischen Werte eine Dummy-Matrix erzeugt. Die Dummy Matrix kann dann, zusammen mit anderen Variablen, mittels Vector Assember erstellt und zur Analyse mittels Machine Learning Algorithmen im MLlib-Paket genutzt werden.
Der zweite Tag beginnt mit einer Fallstudie um die Themen des ersten Tags praktisch zu wiederholen und einzuüben. Nach Abschluss der Fallstudie wird diese gemeinsam besprochen und ggf. alternative Lösungsansätze aufgezeigt.
Danach liegt der Fokus auf Machine Learning mittels MLlib-Modul. Das Modul ist speziell auf Big Data ausgerichtet. Wir starten mit einem Überblick über die vorhandenen Machine Learning Algorithmen. Es werden nochmals typische Data Engineering Schritte in PySpark zusammengefasst. Das feature Submodul stellt Techniken u.a. zum Aufteilen des Datensatzes in Trainings und Testdatensätzen zur Verfügung, um Overfitting kontrollieren zu können.
Das Modell-Training wird am Beispiel der Logistischen Regression an einem einfache Klassifikationsbeispiel gezeigt. Das Modell wird evaluiert (Model Evalution) und für die Vorhersage (Prediction) genutzt, damit steht einem Deployment für praktische Business-Zwecke nichts mehr im Wege.
Im zweiten Machine Learning Teil wird dann eine Auswahl der im MLlib-Modul vorhandenen Supervised Machine Learning Algorithmen - Klassifikation und Regression - genauer betrachtet und direkt praktisch angewendet. An Unsupervised Learning Algorithmen werden die Clusteranalysen und die Recommentaion Engine detaillierter untersucht und genutzt.
Das Automatisieren des Analyseprozesses steht im dritten Machine Learning Teils im Zentrum: Dazu stehen in PySpark Pipelines zur Verfügung, in die die typischen Data Engineering Schritte und auch die typischen Machine Learning Schritte aufgenommen und automatisiert ausgeführt werden lassen können. Dazu werden die bisher erstellten Schritte genutzt und in eine Pipeline integeriert.
Abschließend sollen Möglichkeiten des Hyperparameter-Tuning zur Suche guter Machine-Learning Modelle gezeigt werden. Die Idee des Grid Searches wird an einem Beispiel gezeigt, danach Random Grid Search als effiziente Alternative genutzt. Schließlich werden auch diese Schritte in die Pipeline integiert.