Pyspark shuffle & sort_array

Pyspark shuffle & sort_array
„In Python ist PySpark ein Spark -Modul, mit dem eine ähnliche Art von Verarbeitung wie Spark unter Verwendung von DataFrame bereitgestellt wird.

Es liefert die Methoden "StructType () und structfield (), mit denen die Spalten im PYSPARK -Datenrahmen definiert werden.

Durch die Verwendung dieser Methoden können wir die Spaltennamen und die Datentypen der bestimmten Spalten definieren.”

Lassen Sie uns sie nacheinander besprechen

Strukturtyp ()

Diese Methode wird verwendet. Es akzeptiert eine Liste von Datentypen zusammen mit Spaltennamen für den angegebenen Datenrahmen. Dies ist als Schema des Datenrahmens bekannt. Es speichert eine Sammlung von Feldern

Structfield ()

Diese Methode wird innerhalb der Strukturtyp () -Methode des PYSPARK -Datenframe. Es akzeptiert Spaltennamen mit dem Datentyp.

ArrayType ()

Diese Methode wird verwendet, um die Array -Struktur des PYSPark -Datenframe zu definieren. Es akzeptiert eine Liste von Datentypen. Es speichert eine Sammlung von Feldern. Wir können Datentypen in ArrayType () platzieren.

In diesem Artikel müssen wir also einen Datenrahmen mit einem Array erstellen.

Erstellen wir einen Datenrahmen mit 2 Spalten. Die erste Spalte ist student_category

Das bezieht sich auf das Integer -Feld, um Studenten -IDs und die zweite Spalte zu speichern - student_full_name

wird verwendet, um Stringwerte in einem Array zu speichern, das mit ArrayType () erstellt wurde ().

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#und Strukturtypen und andere Datentypen importieren
aus pysspark.sql.Typen importttypen, structfield, StringType, IntegerType, FAUTTYPE, ArrayType
aus pysspark.sql.Funktionen importieren array_contains
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Betrachten Sie ein Array mit 5 Elementen
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['B', 'P'])]
#Definieren Sie den Struktur- und Strukturen
#Für die obigen Daten
schema = structTtype ([structfield ("student_category", IntegerType ()), structfield ("student_full_name", ArrayType (StringType ())]]))
#Erstellen Sie den Datenrahmen und fügen Sie dem DataFrame Schema hinzu
df = spark_app.erstellteataframe (my_array_data, schema = schema)
df.zeigen()

Ausgang:

Mischen()

Shuffle () wird verwendet, um die Werte in einem Array für alle Zeilen in der Array -Spalte des PYSPark -Datenfrequers zu mischen. Es wird ein neues Array mit gemischten Werten zurückgeben. Es nimmt den Spaltennamen des Array -Typs als Parameter an. Bitte beachten Sie, dass es zufällig mischt.

Syntax:

Shuffle (Array_Column)

Parameter:

Array_Column ist die Array -Spalte mit Arrays mit Werten

Die Funktion Shuffle () wird mit der Methode Select () verwendet, um die Aktion auszuführen.

Zurückkehren:

Es wird das Array mit gemischten Werten zurückgeben.

Beispiel

In diesem Beispiel werden wir die Funktion Shuffle () verwenden, um die in der Spalte student_full_name vorhandenen Werte zu mischen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#und Strukturtypen und andere Datentypen importieren
aus pysspark.sql.Typen importttypen, structfield, StringType, IntegerType, FAUTTYPE, ArrayType
aus pysspark.sql.Funktionen importieren *
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Betrachten Sie ein Array mit 5 Elementen
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['B', 'P'])]
#Definieren Sie den Struktur- und Strukturen
#Für die obigen Daten
schema = structTtype ([structfield ("student_category", IntegerType ()), structfield ("student_full_name", ArrayType (StringType ())]]))
#Erstellen Sie den Datenrahmen und fügen Sie dem DataFrame Schema hinzu
df = spark_app.erstellteataframe (my_array_data, schema = schema)
#shuffle die Array -Werte in der Spalte student_full_name
df.select ("student_full_name", shuffle ("student_full_name")).zeigen()

Ausgang:

Sie können in der zweiten Spalte sehen, dass die Werte im Array gemischt wurden.

sort_array ()

sort_array () wird verwendet, um die Elemente in einem Array zu sortieren. Es dauert zwei Parameter; Der erste Parameter ist der Spaltenname des Array -Typs, und der zweite Parameter ist der ASC, der boolesche Werte nimmt. Wenn es wahr ist, ist das Array in aufsteigender Reihenfolge sortiert. Wenn es falsch ist, ist das Array in absteigender Reihenfolge sortiert. Standardmäßig sortiert es das Array in aufsteigender Reihenfolge.

Syntax:

sort_array (array_column, asc = true/false)

Parameter:

  1. Array_Column ist die Array -Spalte mit Arrays mit Werten
  2. ASC nimmt boolesche Werte, um das Array in aufsteigender oder in absteigender Reihenfolge zu sortieren.

sort_array () Funktion wird mit der Methode Select () verwendet, um die Aktion auszuführen.

Zurückkehren:

Wenn ein sortiertes Array für alle Zeilen in einer Array -Spalte zurückgibt.

Beispiel 1

In diesem Beispiel werden wir die Spalte von Student_full_Name in aufsteigender Reihenfolge sortieren.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#und Strukturtypen und andere Datentypen importieren
aus pysspark.sql.Typen importttypen, structfield, StringType, IntegerType, FAUTTYPE, ArrayType
aus pysspark.sql.Funktionen importieren *
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Betrachten Sie ein Array mit 5 Elementen
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['B', 'P'])]
#Definieren Sie den Struktur- und Strukturen
#Für die obigen Daten
schema = structTtype ([structfield ("student_category", IntegerType ()), structfield ("student_full_name", ArrayType (StringType ())]]))
#Erstellen Sie den Datenrahmen und fügen Sie dem DataFrame Schema hinzu
df = spark_app.erstellteataframe (my_array_data, schema = schema)
#Sortieren Sie die Array -Werte in der Spalte student_full_name in aufsteigender Reihenfolge
df.select ("student_full_name", sort_array ("student_full_name", asc = true)).zeigen()

Ausgang:

In der zweiten Spalte können Sie also sehen, dass das Array für alle Zeilen in aufsteigender Reihenfolge sortiert ist.

Beispiel 2

In diesem Beispiel werden wir die Spalte von Student_full_Name in absteigender Reihenfolge sortieren.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#und Strukturtypen und andere Datentypen importieren
aus pysspark.sql.Typen importttypen, structfield, StringType, IntegerType, FAUTTYPE, ArrayType
aus pysspark.sql.Funktionen importieren *
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Betrachten Sie ein Array mit 5 Elementen
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['B', 'P'])]
#Definieren Sie den Struktur- und Strukturen
#Für die obigen Daten
schema = structTtype ([structfield ("student_category", IntegerType ()), structfield ("student_full_name", ArrayType (StringType ())]]))
#Erstellen Sie den Datenrahmen und fügen Sie dem DataFrame Schema hinzu
df = spark_app.erstellteataframe (my_array_data, schema = schema)
#Sortieren Sie die Array -Werte in der Spalte student_full_name in absteigender Reihenfolge
df.select ("student_full_name", sort_array ("student_full_name", asc = false)).zeigen()

Ausgang:

In der zweiten Spalte sehen Sie also, dass das Array in absteigender Reihenfolge für alle Reihen sortiert ist.

Abschluss

In diesem pyspark -Artikel haben wir zwei verschiedene Array -Funktionen gesehen. Shuffle () wird verwendet, um die Werte in einer Array -Spalte zu mischen. Als nächst. Wenn Sie das Array in absteigender Reihenfolge sortieren möchten, können Sie den auf False festgelegten ASC -Parameter verwenden.