© Excellent backgrounds/Shutterstock.com
Java Magazin
Datenanalyse mit Spark und Apache Zeppelin

Komplexe Daten ganz einfach

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 der Artikel 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.

Michael Lex, Daniel Pape


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 Artikel 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 1 und Tabelle 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 Künstler und Songtitel zuordnet. Die ebenfalls vorhandene Track-ID wird hier nicht benutzt.

UserIdSongIdPlayCountsb80344d063b5ccb3212f76538f3d9e43d87dca9eSOAKIMP12A8C130995 1b80344d063b5ccb3212f76538f3d9e43d87dca9e SOAPDEY12A81C210A9 1b80344d063b5ccb3212f76538f3d9e43d87dca9eSOBBMDR12A8C13253B2

Tabelle 1: Ausschnitt aus „triplets.txt“

TrackIdSongIdArtistTitleTRMBBVY128F426A8F3SOBXXET12A8C1395CCDean MartinOnce In A WhileTRMBBAL128F92E4B44SOKVJAF12A8...

Java Magazin
Datenanalyse mit Spark und Apache Zeppelin

Komplexe Daten ganz einfach

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 der Artikel 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.

Michael Lex, Daniel Pape


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 Artikel 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 1 und Tabelle 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 Künstler und Songtitel zuordnet. Die ebenfalls vorhandene Track-ID wird hier nicht benutzt.

UserIdSongIdPlayCountsb80344d063b5ccb3212f76538f3d9e43d87dca9eSOAKIMP12A8C130995 1b80344d063b5ccb3212f76538f3d9e43d87dca9e SOAPDEY12A81C210A9 1b80344d063b5ccb3212f76538f3d9e43d87dca9eSOBBMDR12A8C13253B2

Tabelle 1: Ausschnitt aus „triplets.txt“

TrackIdSongIdArtistTitleTRMBBVY128F426A8F3SOBXXET12A8C1395CCDean MartinOnce In A WhileTRMBBAL128F92E4B44SOKVJAF12A8...

Neugierig geworden?


    
Loading...

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