Datenverarbeitung: Apache Spark 3.1 will zum Zen-Meister fĂĽr Python werden
Unter dem Schlagwort Project Zen soll Spark den Einsatz von PySpark vereinfachen, um Python fĂĽr die Analytics-Engine zu nutzen.
(Bild: Blackboard/Shutterstock.com)
Acht Monate nach der letzten Hauptversion ist das erste Minor Release von Apache Spark erschienen. Zu den nennenswerten Neuerungen in der Analytics-Engine gehört eine verbesserte Anbindung an die Programmiersprache Python und an ANSI SQL. Außerdem lassen sich strukturierte Streaming-Anwendungen an den History-Server anbinden.
(Bild:Â Databricks)
Daneben bringt das Release zahlreiche Neuerungen unter der Haube mit, die auf eine bessere Performance bei der Datenverarbeitung abzielen. FĂĽr containerisierte Anwendungen gilt Spark on Kubernetes nun als generell verfĂĽgbar. AuĂźerdem lassen sich ĂĽber Node Decommissioning Knoten sowohl unter Kubernetes als auch im Standalone-Modus geordnet auĂźer Betrieb nehmen.
Videos by heise
Bessere Python-Anbindung mit Project Zen
Das Project Zen zielt auf eine verbesserte Nutzerfreundlichkeit fĂĽr den Einsatz von Python mit Apache Spark und baut damit die in Version 3.0 gestarteten BemĂĽhungen rund um die Programmiersprache aus. Apache Spark ist in Scala geschrieben und bietet zahlreiche auf die JVM-Sprache zugeschnittene APIs. Allerdings setzen wohl immer mehr Entwicklerinnen und Entwickler auf das PySpark-Modul, um Spark-Anwendungen in Python zu schreiben. Das Spark-Team hat jedoch erkannt, dass PySpark zu wenig "pythonic", also nicht wirklich auf die Arbeitsweise mit Python zugeschnitten ist.
Unter anderem sei die API-Dokumentation mangelhaft. Daneben spuckt PySpark wohl zahlreiche JVM-Fehlermeldungen aus, die im Zusammenspiel mit Python wenig hilfreich sind. Project Zen zielt daher unter anderem darauf, klarere Fehlermeldungen und Warnungen auszugeben, die Dokumentation zu verbessern und griffige Beispiele fĂĽr die API-Dokumentation zu liefern. AuĂźerdem soll PySpark besser mit verbreiteten Python-Libraries wie NumPy oder pandas zusammenspielen.
FĂĽr das aktuelle Release haben die Macher die Dokumentation von PySpark ĂĽberarbeitet und sich dabei am Stil der NumPy-Beschreibung orientiert. AuĂźerdem bietet das Modul Type Hints fĂĽr Sourcecode-Editoren und Entwicklungsumgebungen und verbessert die Exception-Meldungen von User-defined Functions (UDFs).
Mehr ANSI fĂĽr SQL
Ein weiterer Fokus von Apache Spark 3.1 ist die ANSI-SQL-Compliance. Unter anderem bietet das Release neuerdings die Datentypen CHAR/VARCHAR und den SQL-Befehl SET TIME ZONE. AuĂźerdem liefert die Engine im ANSI-Modus im Fehlerfall neuerdings Laufzeitfehler, statt NULL zurĂĽckzugeben.
Daneben bringt das Release eine einheitliche SQL-Syntax fĂĽr CREATE TABLE und neue Regeln fĂĽr explizite Typumwandlungen mit. FĂĽr Letztere gibt eine Tabelle in der Spark-Dokumentation einen Ăśberblick ĂĽber die fĂĽr CAST erlaubten Quell- und Zieltypen.
Die Geschichte des Stroms
Anwendungen, die Structured Streaming verwenden, können neuerdings den History-Server von Spark verwenden, der dazu dient, im Nachgang die Arbeitsweise und Metriken einer Anwendung nachzuvollziehen, und diese zu diagnostizieren beziehungsweise zu debuggen.
(Bild:Â Apache Software Foundation)
Apache Spark ist eine Analytics-Engine für die Datenverarbeitung, die am AMPLab der University of California in Berkeley entstanden ist. Das Framework zielt auf die Analyse im Big-Data-Umfeld und ermöglicht die Verarbeitung sowohl von Streaming- als auch von Batch-Daten. Die Engine ist auf die Verwaltung großer Datenmengen ausgelegt und bietet APIs zur weiteren Verarbeitung der Daten.
Neben dem zentralen Element Spark Core existieren die Komponenten Spark SQL fĂĽr die SQL-Anbindung und Spark Streaming fĂĽr die Verarbeitung von Zeitreihen. Seit Version 2.0 verbindet die Engine die Verarbeitung von Batch- und Streaming-Daten und kennt Structured Streaming. DarĂĽber hinaus existiert mit GraphX ein Framework fĂĽr Graphen-Verarbeitung und mit MLib eine Library fĂĽr Machine-Learning Anwendungen.
Seit 2010 ist das Framework als Open-Source-Projekt verfügbar. 2013 haben die Entwickler das Projekt der Apache Software Foundation übergeben, wo es nach einer einjährigen Inkubationszeit 2014 zum Top-Level-Projekt aufgestiegen ist. Die ursprünglichen Entwickler haben 2013 die Firma Databricks gegründet, die eine webbasierte Plattform auf Basis von Spark anbietet.
Die offizielle Ankündigung von Spark 3.1.1 listet die weiteren Neuerungen im aktuellen Release auf. Eine detaillierte Übersicht findet sich auf der zugehörigen Jira-Seite. Die Download-Seite bietet neben der aktuellen Version zusätzlich Spark 3.0.2 und 2.4.7 an. Die 3.x-Releases sind für Hadoop 2.7 und 3.2+ und im Sourcecode verfügbar.
(rme)