© DrHitch/Shutterstock.com
Big Data, Fast Data

3 Datenanalyse mit Spark und Apache Zeppelin


Wie kann Spark im Bereich Datenanalyse eingesetzt werden, und welche Vorteile bietet es? Um diese Fragen geht es auf den folgenden Seiten. Dabei richtet sich das Kapitel an Entwickler, die bereits von Spark gehört haben und für die Resilient Distributed Dataset kein Fremdwort ist. Auch Data Analysts, die bisher hauptsächlich mit klassischen BI-Tools gearbeitet haben und auf der Suche nach Open-Source-Alternativen sind, werden hier fündig.

Als Anwendungsfall für das Thema Datenanalyse eignet sich die Erstellung von Produktempfehlungen. Die Algorithmen, die dahinter stecken, sind zwar einfach zu erklären, aber sehr rechenintensiv und müssen oft mit riesigen Datenmengen gefüttert werden. Hier kann Spark seine Fähigkeiten voll ausspielen. Am Beispiel von Produktempfehlungen werden wir die unterschiedlichen Aspekte der Entwicklung einer datengetriebenen Anwendung beleuchten. Wir beginnen mit dem Einlesen der Daten und zeigen die Verarbeitung mit Spark SQL. Anschließend stellen wir Zeppelin als Werkzeug zur explorativen Analyse vor. Im dritten Teil erklären wir detailliert die Anwendung eines Machine-Learning-Algorithmus aus der Spark MLlib. Zum Schluss gehen wir auf die Integration in eine bestehende Softwarelandschaft ein. Alle Codebeispiele aus diesem Kapitel stehen in Form eines kommentierten Zeppelin-Notebooks samt Daten in einem GitHub-Repository [1] zur Verfügung. Es reicht, die dort vorhandene Dokumentation zu benutzen, um in wenigen Schritten zu starten.

Die Basis: Million Song Dataset

Die Firma Echo Nest (jetzt Teil von Spotify) veröffentlichte das Million Song Dataset [2], um Forschung und Entwicklung im Bereich Music Information Retrieval zu unterstützen. Der Datensatz beinhaltet Informationen zu rund einer Millionen Songs der Gegenwartsmusik. Das Taste Profile Subset [3] enthält für eine Million Nutzer aus nicht öffentlich genannten Internetplattformen die Angabe, wie oft ein Nutzer einen Song abgespielt hat. Diesen Datensatz werden wir nutzen, um ein einfaches Empfehlungssystem für Musikstücke zu entwickeln: Wir wollen auf Basis des Hörverhaltens der Nutzer ähnliche Künstler empfehlen.

Die Daten liegen in Form von zwei CSV-Dateien vor, wie die Ausschnitte in Tabelle 3.1 und Tabelle 3.2 andeuten. Die wichtigste dieser Tabellen [4] besteht aus Triplets von Nutzer-ID, Song-ID und der Zahl PlayCounts, die ausdrückt, wie oft der Nutzer einen Song abgespielt hat. Als Zusatzinformationen liefert die zweite Datei [5] eine Tabelle, die jeder Song-ID einen...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang