PYSPARK Array_Contains

PYSPARK Array_Contains
Ten artykuł wprowadzi i pokazuje Pyspark's array_contains () metoda. Metoda służy do sprawdzenia, czy wartości określone istnieją w tablicy w Pyspark.

W tym artykule musimy utworzyć ramkę danych za pomocą tablicy. Utwórzmy ramkę danych z 2 kolumnami. Pierwsza kolumna to Student_Category, która odnosi się do pola liczb całkowitych do przechowywania identyfikatorów studentów. Druga kolumna - Student_Full_Name służy do przechowywania wartości ciągów w tablicy utworzonej za pomocą ArrayType ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#i importuj typy struktur i inne typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType, Arrytype
od Pyspark.SQL.Funkcje import array_contains
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Rozważ tablicę z 5 elementami
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#określić strukturę i pola struktury
#dla powyższych danych
schema = structType ([structfield („student_category”, IntegerType ()), structfield („Student_full_name”, Arrytype (StringType ())])))
#Ukreść ramkę danych i dodaj schemat do DataFrame
df = Spark_App.CreatedATAframe (my_array_data, schema = schemat)
df.pokazywać()

Wyjście:

Teraz zobaczymy, co robi Array_Contains ().

array_contains () służy do sprawdzenia, czy tablica ma określony element. Jeśli tak, zwróci to prawda, w przeciwnym razie fałsz.

Można to sprawdzić za pomocą metody Select (). Wewnątrz tej metody możemy użyć funkcji Array_Contains () i zwrócić wynik.

Składnia:

ramka danych.Wybierz (array_contains (array_column, wartość '))

Parametry:

  1. Array_Column zawiera wartości typu tablicy
  2. Wartość służy do sprawdzenia, czy istnieje w Array_Column, czy nie.

Powrót:

Zwróci prawdziwie/false we wszystkich wierszy w kolumnie tablicy.

Przykład 1:

W tym przykładzie sprawdzimy, czy kolumna nazwa_pełna Student_full_Name ma „L” we wszystkich wierszach za pomocą funkcji Array_Contains ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#i importuj typy struktur i inne typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType, Arrytype
od Pyspark.SQL.Funkcje import array_contains
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Rozważ tablicę z 5 elementami
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#określić strukturę i pola struktury
#dla powyższych danych
schema = structType ([structfield („student_category”, IntegerType ()), structfield („Student_full_name”, Arrytype (StringType ())])))
#Ukreść ramkę danych i dodaj schemat do DataFrame
df = Spark_App.CreatedATAframe (my_array_data, schema = schemat)
# Sprawdź nazwę Student_Full_Name - L we wszystkich wierszach za pomocą funkcji Array_Contains ().
df.Wybierz („Student_full_name”, Array_Contains („Student_full_name”, „L”)).pokazywać()

Wyjście:

Tutaj wybraliśmy kolumny Student_Full_Name. Pierwsza kolumna to rzeczywista kolumna, a druga kolumna jest wynikiem zwróconym przez funkcję Array_Contains ().

Tylko drugi rząd ma wartość „l”, więc zwraca prawdę, a reszta wynika z fałszu.

Przykład 2:

W tym przykładzie sprawdzimy, czy kolumna nazwa_pełna Student_Full_Name ma „k” we wszystkich wierszach za pomocą funkcji Array_Contains ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#i importuj typy struktur i inne typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType, Arrytype
od Pyspark.SQL.Funkcje import array_contains
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Rozważ tablicę z 5 elementami
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#określić strukturę i pola struktury
#dla powyższych danych
schema = structType ([structfield („student_category”, IntegerType ()), structfield („Student_full_name”, Arrytype (StringType ())])))
#Ukreść ramkę danych i dodaj schemat do DataFrame
df = Spark_App.CreatedATAframe (my_array_data, schema = schemat)
# Sprawdź nazwę Student_Full_Name - K we wszystkich wierszach za pomocą funkcji Array_Contains ().
df.Wybierz („Student_full_name”, Array_Contains („Student_full_name”, „K”)).pokazywać()

Wyjście:

Tutaj wybraliśmy kolumny Student_Full_Name. Pierwsza kolumna to rzeczywista kolumna, a druga kolumna jest wynikiem zwróconym przez funkcję Array_Contains ().

Tylko trzeci i czwarty rząd ma wartość „k”, więc zwraca prawdę, a reszta wynika z fałszywego.

Teraz, jeśli chcesz zwrócić cały wiersz w ramce danych, w oparciu o wartość określoną w metodzie Array_Contains (), możesz użyć klauzuli gdzie lub filtr ().

Przykład 1: Używanie gdzie ()

W tym przykładzie zwrócimy wiersz, w którym kolumna nazwy Student_Full_Name ma „K” za pomocą funkcji Array_Contains ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#i importuj typy struktur i inne typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType, Arrytype
od Pyspark.SQL.Funkcje import array_contains
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Rozważ tablicę z 5 elementami
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#określić strukturę i pola struktury
#dla powyższych danych
schema = structType ([structfield („student_category”, IntegerType ()), structfield („Student_full_name”, Arrytype (StringType ())])))
#Ukreść ramkę danych i dodaj schemat do DataFrame
df = Spark_App.CreatedATAframe (my_array_data, schema = schemat)
# Zwróć funkcję Student_Full_Name - K za pomocą funkcji Array_Contains ().
df.gdzie (array_contains („student_full_name”, „k”)).pokazywać()

Wyjście:

Widać, że wiersze zostały zwrócone tam, gdzie nazwa_pełna ma wartość k.

Przykład 2: Używanie Filter ()

W tym przykładzie zwrócimy wiersz, w którym kolumna nazwy Student_Full_Name ma „K” za pomocą funkcji Array_Contains () z klauzulą ​​filtra.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#i importuj typy struktur i inne typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType, Arrytype
od Pyspark.SQL.Funkcje import array_contains
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Rozważ tablicę z 5 elementami
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#określić strukturę i pola struktury
#dla powyższych danych
schema = structType ([structfield („student_category”, IntegerType ()), structfield („Student_full_name”, Arrytype (StringType ())])))
#Ukreść ramkę danych i dodaj schemat do DataFrame
df = Spark_App.CreatedATAframe (my_array_data, schema = schemat)
# Zwróć funkcję Student_Full_Name - K za pomocą funkcji Array_Contains ().
df.Filter (array_contains ('student_full_name', 'k')).pokazywać()

Wyjście:

Widać, że wiersze zostały zwrócone tam, gdzie nazwa_pełna ma wartość k.

Wniosek

Dowiedzieliśmy się, że Array_Contains () służy do sprawdzenia, czy wartość jest obecna w szeregu kolumn. Można to osiągnąć za pomocą klauzuli Select.

Jeśli chcesz zwrócić wiersze, w których tablica zawiera wartości, to zamiast wyboru, możesz użyć klauzuli gdzie lub filtru.