Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Apache Sparks lange Reihe von Vorgängern, von MPI (Message Passing Interface) bis MapReduce, hat es möglich gemacht, Programme zu schreiben, die die Vorteile massiver Ressourcen nutzen und gleichzeitig von den kleinen Details verteilter Systeme abstrahieren. So sehr die Bedürfnisse der Datenverarbeitung die Entwicklung dieser Frameworks motiviert haben, so sehr ist der Bereich Big Data mit ihnen verbunden, so dass sein Umfang durch die Möglichkeiten dieser Frameworks bestimmt wird. Das ursprüngliche Versprechen von Spark war es, dies noch ein bisschen weiter zu treiben - damit sich das Schreiben verteilter Programme wie das Schreiben normaler Programme anfühlt.
Der Anstieg der Popularität von Spark fiel mit dem des Python-Daten-Ökosystems (PyData) zusammen. Daher ist es nur logisch, dass die Python-API von Spark - PySpark - in den letzten Jahren erheblich an Popularität gewonnen hat. Obwohl das PyData-Ökosystem in letzter Zeit einige Optionen für die verteilte Programmierung hervorgebracht hat, ist Apache Spark nach wie vor eine der beliebtesten Optionen für die Arbeit mit großen Datensätzen in verschiedenen Branchen und Bereichen. Dank der jüngsten Bemühungen, PySpark in die anderen PyData-Tools zu integrieren, kannst du mit dem Erlernen des Frameworks deine Produktivität als Data-Science-Experte erheblich steigern.
Wir sind der Meinung, dass man Data Science am besten anhand von Beispielen lehren kann. Deshalb haben wir ein Buch mit Anwendungen zusammengestellt, in dem wir versuchen, die Wechselwirkungen zwischen den häufigsten Algorithmen, Datensätzen und Entwurfsmustern in der groß angelegten Analytik zu erläutern. Dieses Buch ist nicht dazu gedacht, von vorne bis hinten gelesen zu werden: Blättere zu einem Kapitel, das so aussieht, als ob du etwas erreichen willst oder das einfach dein Interesse weckt, und fange dort an.
Warum haben wir dieses Buch jetzt geschrieben?
Apache Spark erfuhr im Jahr 2020 ein großes Versions-Upgrade - Version 3.0. Eine der größten Verbesserungen war die Einführung von Spark Adaptive Execution. Diese Funktion nimmt einen großen Teil der Komplexität bei der Abstimmung und Optimierung weg. Wir gehen in diesem Buch nicht darauf ein, weil sie in Spark 3.2 und späteren Versionen standardmäßig aktiviert ist und du somit automatisch von den Vorteilen profitierst.
Die Veränderungen im Ökosystem in Verbindung mit dem letzten großen Release von Spark machen diese Ausgabe zu einer zeitgemäßen Ausgabe. Im Gegensatz zu früheren Ausgaben von Advanced Analytics with Spark, in denen Scala verwendet wurde, werden wir Python verwenden. Wir behandeln bewährte Methoden und integrieren das breitere Ökosystem der Python-Datenwissenschaft, wenn es angebracht ist. Alle Kapitel wurden aktualisiert, um die neueste PySpark-API zu nutzen. Zwei neue Kapitel wurden hinzugefügt und mehrere Kapitel wurden grundlegend umgeschrieben. Die Streaming- und Graph-Bibliotheken von Spark werden nicht behandelt. Da Spark eine neue Ära der Reife und Stabilität erreicht hat, hoffen wir, dass diese Änderungen das Buch auch in den kommenden Jahren als nützliche Ressource für die Analytik erhalten.
Wie dieses Buch organisiert ist
Kapitel 1 stellt Spark und PySpark in den größeren Kontext von Data Science und Big Data Analytics. Danach enthält jedes Kapitel eine in sich geschlossene Analyse mit PySpark. In Kapitel 2 werden die Grundlagen der Datenverarbeitung in PySpark und Python anhand eines Anwendungsfalls zur Datenbereinigung vorgestellt. In den nächsten Kapiteln geht es um das maschinelle Lernen mit Spark und die Anwendung einiger der gängigsten Algorithmen in klassischen Anwendungen. Die verbleibenden Kapitel sind eher ein Sammelsurium und wenden Spark in etwas exotischeren Anwendungen an - zum Beispiel bei der Abfrage von Wikipedia über latente semantische Beziehungen im Text, bei der Analyse von Genomikdaten und bei der Identifizierung ähnlicher Bilder.
In diesem Buch geht es nicht um die Vorzüge und Nachteile von PySpark. Es geht auch nicht um ein paar andere Dinge. Es stellt das Spark-Programmiermodell und die Grundlagen der Python-API von Spark, PySpark, vor. Es versucht jedoch nicht, eine Spark-Referenz zu sein oder einen umfassenden Leitfaden für alle Ecken und Winkel von Spark zu bieten. Es versucht auch nicht, ein Nachschlagewerk für maschinelles Lernen, Statistik oder lineare Algebra zu sein, obwohl viele der Kapitel vor ihrer Verwendung Hintergrundwissen zu diesen Themen vermitteln.
Stattdessen soll dieses Buch dem Leser helfen, ein Gefühl dafür zu bekommen, wie es ist, PySpark für komplexe Analysen großer Datensätze zu nutzen, indem es die gesamte Pipeline abdeckt: nicht nur das Erstellen und Auswerten von Modellen, sondern auch das Bereinigen, Vorverarbeiten und Erforschen von Daten, wobei das Augenmerk auf der Umsetzung der Ergebnisse in Produktionsanwendungen liegt. Wir sind der Meinung, dass man dies am besten durch Beispiele vermitteln kann.
Hier sind Beispiele für einige Aufgaben, die in diesem Buch behandelt werden:
- Vorhersage der Waldbedeckung
-
Wir sagen die Art der Waldbedeckung anhand relevanter Merkmale wie Standort und Bodentyp mit Hilfe von Entscheidungsbäumen voraus (siehe Kapitel 4).
- Wikipedia nach ähnlichen Einträgen abfragen
-
Wir identifizieren Beziehungen zwischen Einträgen und fragen den Wikipedia-Korpus mithilfe von NLP-Techniken (Natural Language Processing) ab (siehe Kapitel 6).
- Die Auslastung der New Yorker Taxis verstehen
-
Wir berechnen die durchschnittliche Wartezeit von Taxis in Abhängigkeit vom Standort, indem wir eine zeitliche und räumliche Analyse durchführen (siehe Kapitel 7).
- Reduziere das Risiko für ein Investitionsportfolio
-
Wir schätzen das finanzielle Risiko für ein Investitionsportfolio mithilfe der Monte-Carlo-Simulation (siehe Kapitel 9).
Wenn möglich, versuchen wir, nicht nur eine "Lösung" zu liefern, sondern den gesamten Data Science Workflow mit all seinen Iterationen, Sackgassen und Neustarts zu zeigen. Dieses Buch ist nützlich, um sich mit Python, Spark, maschinellem Lernen und Datenanalyse vertraut zu machen. Wir hoffen, dass du in diesem Buch vor allem lernst, wie du Aufgaben wie die oben beschriebenen angehen kannst. In jedem Kapitel wird auf etwa 20 mickrigen Seiten so gut wie möglich gezeigt, wie man einen Teil dieser Datenanwendungen erstellt.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Dieses Element steht für einen Tipp oder eine Anregung.
Dieses Element steht für einen allgemeinen Hinweis.
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/sryza/aas zum Download bereit .
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an bookquestions@oreilly.com.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Advanced Analytics with PySpark von Akash Tandon, Sandy Ryza, Uri Laserson, Sean Owen, and Josh Wills (O'Reilly). Copyright 2022 Akash Tandon, 978-1-098-10365-1."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter https://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/adv-analytics-pyspark aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.
Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media
Folge uns auf Twitter: https://twitter.com/oreillymedia
Schau uns auf YouTube: https://youtube.com/oreillymedia
Danksagungen
Es versteht sich von selbst, dass du dieses Buch nicht lesen würdest, wenn es Apache Spark und MLlib nicht geben würde. Wir alle schulden dem Team, das die Software entwickelt hat, und den Hunderten von Mitwirkenden, die sie weiterentwickelt haben, Dank.
Wir möchten uns bei allen bedanken, die viel Zeit damit verbracht haben, den Inhalt der vorherigen Ausgaben des Buches mit Expertenaugen zu überprüfen: Michael Bernico, Adam Breindel, Ian Buss, Parviz Deyhim, Jeremy Freeman, Chris Fregly, Debashish Ghosh, Juliet Hougland, Jonathan Keebler, Nisha Muktewar, Frank Nothaft, Nick Pentreath, Kostas Sakellis, Tom White, Marcelo Vanzin und erneut Juliet Hougland. Vielen Dank an alle! Wir sind euch etwas schuldig. Das hat die Struktur und die Qualität des Ergebnisses deutlich verbessert.
Sandy möchte sich auch bei Jordan Pinkus und Richard Wang für ihre Hilfe bei der Theorie des Risikokapitels bedanken.
Danke an Jeff Bleiel und O'Reilly für die Erfahrung und die großartige Unterstützung, dieses Buch zu veröffentlichen und in eure Hände zu bekommen.
Get Erweiterte Analytik mit PySpark now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.