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:
- Array_Column zawiera wartości typu tablicy
- 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.