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.

In Pocket speichern vorlesen Druckansicht

(Bild: Blackboard/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

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.

Databricks hat die Neuerungen und Erweiterungen von Apache Spark 3.1 in einer Grafik zusammengefasst.

(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.

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).

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.

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.

Spark sprüht Funken für Daten

(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)