Unterschiede zwischen RDD, Datenrahmen und Datensätze in Spark

Inhalt

Überblick

  • Den Unterschied zwischen APIs verstehen 3 Funken: RDD, Datenrahmen und Datensätze
  • Wir werden sehen, wie man RDD erstellt, Datenrahmen und Datensätze.

Einführung

Etwas bestanden haben 11 Jahre seit Apache Spark begann zu existieren und, eindrucksvoll und kontinuierlich, wurde die erste Wahl von Big-Data-Entwicklern. Entwickler haben es schon immer geliebt, einfache und leistungsstarke APIs bereitzustellen, die jede Art von Big-Data-Analyse durchführen können..

RDD-Datenrahmen-Datasets

Anfänglich, In 2011 kam auf das Konzept von RDD, nach in 2013 mit Dataframes und später in 2015 mit dem Konzept der Datensätze. Keiner von ihnen hat abgeschrieben, wir können sie alle noch gebrauchen. In diesem Beitrag, Wir werden den Unterschied zwischen den drei verstehen und sehen.

Inhaltsverzeichnis

  1. Was sind RDDs??
  2. Wann sollte RDD verwendet werden??
  3. Was sind Datenrahmen??
  4. Was sind Datensätze??
  5. RDD vs. Dataframes vs. Datasets?

Was sind RDDs??

RDDs oder belastbare verteilte Datensätze sind die grundlegende Datenstruktur von Spark. Es ist die Sammlung von Objekten, die in der Lage ist, partitionierte Daten in den mehreren Knoten des Clusters zu speichern und ihnen auch die parallele Verarbeitung zu ermöglichen..

Es ist fehlertolerant, wenn Sie mehrere Transformationen auf dem RDD durchführen und dann, für jeden umstand, ein Knoten schlägt fehl. El RDD, dann, kann sich automatisch wiederherstellen.

RDDEs gibt 3 alternativen para crear un ASD:

  1. Parallel zu einer bestehenden Datensammlung
  2. Verweis auf die gespeicherte externe Datendatei
  3. RDD aus einem bestehenden RDD erstellen

Wann sollte RDD verwendet werden??

Wir können RDD in den folgenden Situationen verwenden:

  1. Wenn wir Low-Level-Transformationen des Datasets durchführen möchten. Lesen Sie mehr über RDD-Transformationen: PySpark, um Transformationen durchzuführen
  2. Leitet das Schema nicht automatisch aus den aufgenommenen Daten ab, wir müssen das Schema jedes einzelnen Datensatzes angeben, wenn wir ein RDD erstellen. Erfahren Sie hier, wie Sie das RDD-Schema ableiten können: Erstellen von Pipelines für maschinelles Lernen mit PySpark

Was sind Datenrahmen??

Es wurde zuerst in der Spark-Version eingeführt 1.3 um die Einschränkungen von Spark RDD zu überwinden. Spark Dataframes sind die verteilte Sammlung von Datenpunkten, Aber hier, Daten sind in benannten Spalten organisiert. Entwicklern ermöglichen, Code während der Laufzeit zu debuggen, was bei RDDs nicht erlaubt war.

Datenrahmen können die Daten in verschiedenen Formaten wie CSV lesen und schreiben, JSON, EURO, HDFS- und HIVE-Tabellen. Es ist bereits für die Verarbeitung großer Datensätze für die meisten Vorverarbeitungsaufgaben optimiert, Wir müssen also keine komplexen Funktionen selbst schreiben.

Verwendet einen Katalysatoroptimierer zu Optimierungszwecken. Wenn Sie mehr über den Katalysatoroptimierer erfahren möchten, Ich empfehle dir dringend, diesen Beitrag zu lesen: Praktisches Tutorial zur Datenanalyse mit Spark SQL

Sehen wir uns an, wie Sie mit PySpark einen Datenrahmen erstellen.

Was sind Datensätze??

Spark Datasets ist eine Erweiterung der Data Frames API mit den Vorteilen von RDDs und Datasets. Es ist schnell und bietet eine typsichere Schnittstelle. Typsicherheit bedeutet, dass der Compiler die Datentypen aller Spalten im Dataset nur während der Kompilierung validiert und bei Diskrepanzen in den Datentypen einen Fehler ausgibt.

Datensätze

RDD-Benutzer werden es dem Code etwas ähnlich finden, aber es ist schneller als RDD. Kann strukturierte und unstrukturierte Daten effizient verarbeiten.

Wir können immer noch keine Spark-Datasets in Python erstellen. Dataset API ist nur in Scala und Java aktiviert.

RDD vs. Datenrahmen vs. Datensätze

RDD Datenrahmen Datensätze
Daten Präsentation RDD ist eine verteilte Sammlung von Datenelementen ohne Schema. Es ist auch die verteilte Sammlung, die in den benannten Spalten organisiert ist. Es ist eine Erweiterung von Dataframes mit weiteren Funktionen wie Typsicherheit und objektorientierter Schnittstelle.
Verbesserung Keine integrierte Optimierungs-Engine für RDD. Entwickler müssen den optimierten Code selbst schreiben. Verwendet einen Katalysatoroptimierer zur Optimierung. Verwendet auch einen Katalysatoroptimierer zu Optimierungszwecken.
Umrissprojektion Hier, wir müssen das Schema manuell einstellen. Das Dataset-Schema wird automatisch erkannt. Darüber hinaus findet es automatisch das Schema des Datasets über die SQL-Engine.
Aggregationsvorgang RDD ist langsamer als Datenrahmen und Datensätze, um einfache Operationen wie das Gruppieren von Daten durchzuführen. Bietet eine einfache API zum Ausführen von Aggregationsvorgängen. Führt Aggregation schneller durch als RDDs und Datensätze. Dataset ist schneller als RDDs, aber etwas langsamer als Dataframes.

Abschließende Anmerkungen

In diesem Beitrag, Wir haben den Unterschied zwischen den drei Haupt-APIs von Apache Spark gesehen. Dann, fertigstellen, wenn du eine reiche Semantik willst, Abstraktionen auf hoher Ebene, Typsicherheit, elija Dataframes oder Datasets. Wenn Sie mehr Kontrolle über den Vorverarbeitungsteil benötigen, Sie können die RDDs immer verwenden.

Ich empfehle Ihnen, sich diese zusätzlichen Ressourcen zu Apache Spark anzusehen, um Ihr Wissen zu erweitern:

Wenn Sie diesen Beitrag informativ fanden, teile es mit deinen Freunden, und auch wenn Sie Vorschläge machen möchten, was abgedeckt werden sollte, Fühlen Sie sich frei, sie in den Notizen unten zu hinterlassen.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.