View a markdown version of this page

Verwenden von SQL-Fensterfunktionen anstelle von Join und GroupBy - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von SQL-Fensterfunktionen anstelle von Join und GroupBy

Fensterfunktionen (SparkDokumentation) führen eine Berechnung für eine Gruppe von Zeilen durch, die als Fenster bezeichnet werden und sich irgendwie auf den aktuellen Datensatz beziehen. Sie können sich beispielsweise in derselben Partition oder demselben Frame wie die aktuelle Zeile befinden. Fensterfunktionen sind in Spark integriert und ähneln Aggregatfunktionen. Aggregatfunktionen wie SUM oder MAX arbeiten mit einer Gruppe von Zeilen und berechnen für jede Gruppe einen einzelnen Rückgabewert. Fensterfunktionen sind nützlich für die Verarbeitung von Aufgaben wie die Berechnung eines gleitenden Durchschnitts oder für den Zugriff auf den Wert von Zeilen auf der Grundlage der relativen Position der aktuellen Zeile.

Die Spark groupBy Funktion sammelt Daten in Gruppen und führt Aggregatfunktionen für die gruppierten Daten aus. Wenn Sie diese Option verwendengroupBy, werden die Daten zuerst Spark teilweise aggregiert und dann der reduzierte Datensatz gemischt. Wenn Sie Fensterfunktionen verwenden, wird der gesamte Datensatz gemischt. Fensterfunktionen können für schnellere Laufzeiten sorgen.

Bei sehr großen Datensätzen werden Fensterfunktionen empfohlen, wenn die Kardinalität der Spalte groß ist. Wenn die Kardinalität der Spalte jedoch klein ist, ist die Datenaggregation gering, und das aggregierte Ergebnis kann in der Verknüpfung übertragen werden.