Apache Spark Updates Erweiterte Python-Integration und GenAI-Funktionen für fortgeschrittene Datenanalysen

Von Michael Matzer Lesedauer: 4 min |

Anbieter zum Thema

Databricks Lakehouse baut auf Apache Spark als Data-Engineering- und Analyse-Plattform auf. Auf der Anwenderkonferenz DAIS 2023 (BigData-Insider berichtete) im Juni 2023 wurde die Version 3.4 mit zahlreichen Neuerungen vorgestellt. Im September wurde die Version 3.5 freigegeben. Die Zusammenarbeit zwischen Spark und Python wird zunehmend enger.

Die neue Architektur des Data Lakehouses löst die alte Architektur des Data Warehouses ab.
Die neue Architektur des Data Lakehouses löst die alte Architektur des Data Warehouses ab.
(Bild: Databricks)

Apache Spark ist eine Analytik-Engine für die Verarbeitung sehr großer Datenmengen. Im Jahr 2014 entwickelt, stellt sie mittlerweile APIs in Java, Scala, Python und R bereit sowie eine optimierte Engine, die die Ausführung von Graphen unterstützt. Zum Spark-Kern wurden im Lauf der Zeit verschiedene leistungsfähige Werkzeuge hinzugefügt: Spark SQL für die Ausführung von SQL und strukturierter Datenverarbeitung, ebenso die Pandas API 2.1.2, um Pandas-Workloads zu verarbeiten, denn die Python Data Analysis Library ist ein leistungsfähiges Werkzeug für quelloffene Datenanalyse auf Python-Basis.

Spark umfasst eine eigene MLlib für Machine Learning und mit GraphX eine Engine für die Graph-Verarbeitung und schließlich mit Structured Streaming, um inkrementelle Berechnungen und die Verarbeitung von Datenströmen ausführen zu können.

Bildergalerie

„Spark hat 3.600 Kontributoren und erhielt 40.000 Code-Commits“, berichtete Reynold Xin, Chief Architect Databricks, auf der DAIS-Konferenz, denn es habe das reife Alter von zehn Jahren erreicht: „Die Zahl der jährlichen Downloads hat die Milliarde überschritten.“ Heute könnten Entwickler für Spark mit den Sprachen Scala, Python, Java, R und SQL programmieren und mehr als hundert Datenquellen einbinden. Spark werde auch für KI eine Rolle spielen, nämlich durch die Unterstützung für Langchain, Pytorch und andere KI-Frameworks.

Neu in Version Spark v3.4.1

„Python wird die Vorherrschaft der Programmiersprachen C/C# und Java beenden, daher wird es besonders unterstützt“, sagte Reynold Xin. „Ebenso baut Spark die Unterstützung für generative KI aus.“ Spark 3.4.1 verfügt nun über ein PySpark-Test-Framework, mit dem sich Python-Funktionen bereits in Spark testen lassen. User-definierte Tabellen-Funktionen (UDTF) ermöglichen Erweiterungen und den Zugriff auf Datenquellen in Python sowie Pandas. Mit dem „Project Zen“ biete Spark nun die Funktion „AutoComplete“ von Python-Code.

Wie Reynold Xin sagte, werde „die Sprache für Entwickler künftig Englisch sein“, denn GenAI und NLP machen es möglich. Daher soll es künftig ein English SDK für Spark mit dem Namen pyspark.ai geben. Es verwendet Englisch, verarbeitet es mit dem Compiler in GenAI und erzeugt Byte-Code namens PySpark.

Ein neues Feature, das von großen Sprachmodellen (LLMs) unterstützt werde, ist ein Spark Assistant, der auf der Funktion „Spark Expert“ basiert. Die neue Funktion „Spark Connect“ war im Juni 2023 bereits verfügbar. Spark Connect verfügt über einen Thin Client, um sich mit Spark aus jeder Anwendung, Entwicklungsumgebung und Programmiersprache heraus zu verbinden.

Die Unterstützung für Delta Lake 3.0 wurde nach Angaben von Michael Armbrust, Distinguished Engineer bei Databricks, in Spark 3.4x ausgebaut. Um die Spark-Komponente für Structured Streaming in dem Leistungsmerkmal „Delta Sharing“ besser schützen zu können, wird Delta Sharing nun von Oracle und von Twilio unterstützt. Wichtig für alle Cloud-Nutzer: „Es gibt keine Egress-Gebühren mit Delta Sharing“, so Armbrust. Egress-Gebühren entstehen immer dann, wenn ein Nutzer Daten aus der Cloud, beispielsweise S3, entnehmen will.

AWS bietet für Datenentnahme weitere Methoden an, so etwa einen Content Network Delivery (CDN) Service. Eine weitere Schutzfunktion bietet Spark nun mit dem Support für QAuth 2.0 für Spark an. Die Unterstützung für die Programmiersprache Rust mit Delta.rs macht den Code „memory-safe“ und eliminiert so eine häufig ausgebeutete Schwachstelle, nämlich den Hauptspeicher. Der Rust-Support wurde laut Armbrust stark nachgefragt.

Ein Entwicklungsschwerpunkt sei die Performance gewesen, so Armbrust. Die Latenzzeit für Abfragen sei nun mehr als 50-mal niedriger als bisher. Mit Version 3.4x führt Spark „Liquid Clustering“ für Delta-Tabellen ein, um die Partitionierungsstrategie des Kunden hinsichtlich der Dateigrößen zu optimieren. „Indem die Dateien unterteilt werden, lassen sie sich bis zu 2,5-mal schneller übertragen, was aber auch die Lesegeschwindigkeit erhöht“, so Armbruster.

Über das neue Dateiformat „Delta Uniform“, das zu Hudi und Apache Iceberg kompatibel sein soll, hat Bigdata-insider.de bereits im Sommer 2023 berichtet. Im Ökosystem der Spark-Konnektoren ist Apache Flink neu hinzugekommen. Flink sorgt für strukturiertes, stateful-Streaming und entsprechende Berechnungen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Neu in Spark Release 3.5.0

Apache Spark 3.5.0 ist im September als sechstes Release von Version 3.x freigegeben worden. Enthalten seien laut Apache-Foundation zahlreiche bedeutende Beiträge der Open Source Community, das neue Release beantworte mehr als 1300 Jira-Helpdesk-Tickets.

Das oben erwähnte „Spark Connect“ erhält nun jeweils einen Thin Client für die Programmiersprachen Scala und Go sowie Pandas-API-Support. Neu ist die Unterstützung für verteiltes Training und die Inferenz von Machine-Learning-Modellen in PyTorch. Damit werde die jeweilige Infrastruktur entlastet und der vorhandene Spark-Cluster besser ausgenutzt. Das verteilte Training werde mit der neuen Pytorch-Verteiler-Funktion „DeepSpeed“ vereinfacht. Die Kompatibilität für Structured Streaming wurde ebenso wie die Unterstützung von Python erheblich erweitert.

Diese Version führt neue Funktionen des English SDK „PySpark“ (das allein 22 Verbesserungen erhielt) und von SQL ein, so etwa das SQL-IDENTIFIER-Attribut, benannte Argumente für SQL-Funktionsaufrufe sowie die Unterstützung von HyperLogLog-Daten-Aggregaten für SQL-Funktionen.

Wasserzeichen erhielten erhöhte Aufmerksamkeit, denn sie verbessern die Sicherheit der Datenverarbeitung in Stateful-Streaming-Berechnungen, indem sie uferlose Stream-Downloads durch Schwellenwerte verhindern. Die Version 3.5 führt die Weiterleitung von Wasserzeichen zwischen Operatoren ein. Im Structured Streaming von Spark wird die Funktion „dropDuplicatesWithinWatermark“ eingeführt, was die Anzahl doppelter und mehrfacher Wasserzeichen im Hinblick auf Datensparsamkeit verringern dürfte.

Artikelfiles und Artikellinks

(ID:49782600)