Spark 1.6: Neue Dataset API vereint Vorzüge von RDDs und DataFrames

Neben der neue Dataset API spielen auch Arbeiten zur Verbesserung der Performance und neue Funktionen für Data Scientists eine gewichtige Rolle in der neuen Version des Big-Data-Frameworks für verteilte Kalkulationen auf Rechnerclustern.

In Pocket speichern vorlesen Druckansicht
Spark 1.6
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Drei Highlights machen die Spark-Entwickler bei der nun erhältlichen Version 1.6 des quelloffenes Big-Data-Frameworks für verteilte Kalkulationen auf Rechnerclustern aus: eine verbesserte Performance, die neue DataSet API und ergänzende Funktionen für Data Scientists. Ansonsten konnte das unter dem Dach der Apache Software Foundation entwickelte Framework 2015 rund 1000 Contributoren verzeichnen. Das entspricht einer Verdopplung der Zahl aus dem Vorjahr und ist Ausdruck der zunehmenden Verbreitung von Spark, das sich anschickt, das arrivierte Apache Hadoop als Nurmmer-eins-Framework im Big-Data-Sektor abzulösen.

Unterteilten die bisherigen Ausgaben des Frameworks den Speicher in zwei Bereiche, einen für die Datenhaltung und einen für die Ausführung (Sorting, Hashing, Shuffling), hatte das zur Folge, dass die Anwender zu evaluieren hatten, wie viel Speicher sie den jeweiligen Bereichen zuweisen müssen. In Spark 1.6 können sowohl der Datenhaltungs- als auch der Ausführungsspeicher so viel Kapazitäten vom jeweils anderen Bereich beziehen, wie sie für sich benötigen. Das soll zu einer spürbaren Beschleunigung in der Speicherverwaltung führen.

Für ein besseres Verhalten im Umgang mit dem Parquet-Datenformat soll ein neuer Parquet Reader sorgen. In den Benchmarks der Spark-Entwickler scheint es hier zu einer Verbesserung von 50 Prozent gegenüber dem bisherigen Reader zu kommen. Zu einer zehnfachen Beschleunigung haben schließlich die Neugestaltung der State Management API in Spark Streaming und die Einführung der neuen mapWithState API geführt.

Mit der neuen Dataset API soll sich mit mehreren typisierten Objekten im Verbund arbeiten lassen. Bislang hatte man bei Spark die Wahl aus zwei Programmierschnittstellen: erstens RDDs (Resilient Distributed Datasets), die eine nützliche, aber auch langsame Sammlung nativer Java-Objekte darstellen, und zweitens DataFrames, die einer Menge strukturierter Binärdaten entsprechen, die zwar schneller als die RDDs sind, aber auch weniger stabil. Die Dataset API soll die Vorzüge beider Ansätze vereinen, aber sich auch interoperabel mit den DataFrames verhalten.

Neben etlichen neuen Machine-Learning-Algorithmen, die die Ankündigung auflistet, und Überarbeitungen an den Programmierschnittstellen für R und Python sind für Data Scientists auch die Änderungen im Umfeld der Datenhaltung sogenannter Machine-Learning-Pipelines wichtig. Die Pipeline API umfasst nun Funktionen, einen älteren Status einer Pipeline zu laden und bei älteren Untersuchungen genutzte Modelle später auch bei neuen Datensätzen anzuwenden. Als Beispiel wird hierfür ein Szenario genannt, bei dem ein Nutzer eine Pipeline in einer Testversion "trainiert", bevor er sie auf die Produktionsdaten und den Livebetrieb loslässt. (ane)