Pyspark array_contains

Pyspark array_contains
Dieser Artikel wird Pysparks vorstellen und demonstrieren array_contains () Methode. Die Methode wird verwendet, um zu überprüfen.

In diesem Artikel müssen wir einen Datenrahmen mit einem Array erstellen. Erstellen wir einen Datenrahmen mit 2 Spalten. Die erste Spalte ist student_category, die sich auf das Integer -Feld bezieht, um Studenten -IDs zu speichern. Die zweite Spalte - 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:

Jetzt werden wir sehen, was Array_Contains () tun.

Array_Contains () wird verwendet, um zu überprüfen, ob das Array das angegebene Element hat. Wenn ja, wird es wahr zurückgeben, sonst falsch.

Dies ist möglich, um die Methode aus Select () zu überprüfen. In dieser Methode können wir die Funktion array_contains () verwenden und das Ergebnis zurückgeben.

Syntax:

Datenrahmen.select (array_contains (array_column, value '))

Parameter:

  1. Array_Column enthält Array -Typwerte
  2. Der Wert wird verwendet, um zu überprüfen, ob er im Array_Column vorliegt oder nicht.

Zurückkehren:

Es wird in einer Array -Spalte wahr/falsch über alle Zeilen zurückgegeben.

Beispiel 1:

In diesem Beispiel prüfen wir, ob die Spalte student_full_name in allen Zeilen mit der Funktion array_contains () 'l' in allen Zeilen enthält.

#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)
# Überprüfen Sie in allen Zeilen die Funktion von student_full_name - l mit der Funktion array_contains ().
df.select ("student_full_name", array_contains ('student_full_name', 'l')).zeigen()

Ausgang:

Hier haben wir die Spalten student_full_name ausgewählt. Die erste Spalte ist die tatsächliche Spalte und die zweite Spalte ist das Ergebnis, das von Array_Contains () Funktion zurückgegeben wird.

Nur die zweite Zeile hat einen Wert von 'l'.

Beispiel 2:

In diesem Beispiel werden wir überprüfen, ob die Spalte von Student_full_Name in allen Zeilen mit der Funktion array_contains () 'k' in allen Zeilen enthält.

#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)
# Überprüfen Sie in allen Zeilen die Funktion von student_full_name - k mit der Funktion array_contains ().
df.select ("student_full_name", array_contains ('student_full_name', 'k')).zeigen()

Ausgang:

Hier haben wir die Spalten student_full_name ausgewählt. Die erste Spalte ist die tatsächliche Spalte und die zweite Spalte ist das Ergebnis, das von Array_Contains () Funktion zurückgegeben wird.

Nur die dritte und die vierte Reihe hat einen Kennwert, daher kehrt er wahr zurück, und die restlichen Ergebnisse zu falsch.

Wenn Sie nun die gesamte Zeile im DataFrame zurückgeben möchten, basierend auf der in Array_Contains () Methode angegebenen Wert.

Beispiel 1: Verwenden Sie wo () verwendet ()

In diesem Beispiel werden wir die Zeile zurückgeben, in der die Spalte student_full_name mit der Funktion array_contains () mit 'k' enthält.

#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)
# Rückgeben Sie die Funktion student_full_name - k mit der Funktion array_contains ().
df.wo (array_contains ('student_full_name', 'k')).zeigen()

Ausgang:

Sie können sehen, dass die Zeilen zurückgegeben wurden, wo der Student_full_Name K -Wert hat.

Beispiel 2: Verwenden von Filter ()

In diesem Beispiel werden wir die Zeile zurückgeben, in der die Spalte student_full_name mit der Funktion array_contains () mit Filterklausel "k" enthält.

#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)
# Rückgeben Sie die Funktion student_full_name - k mit der Funktion array_contains ().
df.filter (array_contains ('student_full_name', 'k')).zeigen()

Ausgang:

Sie können sehen, dass die Zeilen zurückgegeben wurden, wo der Student_full_Name K -Wert hat.

Abschluss

Wir haben erfahren, dass Array_Contains () verwendet wird, um zu überprüfen, ob der Wert in einem Array von Spalten vorhanden ist. Dies kann mit der Auswahlklausel erreicht werden.

Wenn Sie Zeilen zurückgeben müssen, an der das Array Werte enthält, können Sie anstelle von SELECT verwenden.