„W Python PYSPARK to moduł Spark używany do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark za pomocą DataFrame.
Zapewnia metody struktury () i structfield (), które są używane do definiowania kolumn w Pyspark DataFrame.
Korzystając z tych metod, możemy zdefiniować nazwy kolumn i typy danych poszczególnych kolumn."
Omów je jeden po drugim
StructType ()
Ta metoda służy do zdefiniowania struktury Pyspark DataFrame. Zaakceptuje listę typów danych wraz z nazwami kolumn dla danej ramki danych. Jest to znane jako schemat ramki danych. Przechowuje zbiór pól
Structfield ()
Ta metoda jest stosowana w metodzie structType () Pyspark DataFrame. Zaakceptuje nazwy kolumn z typem danych.
Arrytype ()
Ta metoda służy do zdefiniowania struktury tablicy Pyspark DataFrame. Zaakceptuje listę typów danych. Przechowuje zbiór pól. Możemy umieszczać dane danych wewnątrz ArrayType ().
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 studenta, a druga kolumna - nazwa_full_name jest używana do przechowywania wartości ciągów w tablicy utworzonej za pomocą ArYType ().
#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:
array_position ()
array_position () służy do zwrócenia pozycji wartości obecnej w tablicy w każdym rzędzie kolumny typu tablicy. Wymaga dwóch parametrów, pierwszym parametrem jest kolumna tablicy, a drugi parametr to wartość. Zwraca pozycję wartości w każdej tablicy. Pozycja zaczyna się od 1.
Jeśli w tej samej tablicy jest wiele wartości, zwróci pozycję pierwszej wartości.
Składnia
array_position (array_column, „wartość”)
Parametry
- Array_Column to kolumna tablicy, która ma tablice o wartościach
- Wartość jest obecna w tablicy.
funkcja array_position () jest używana z metodą Select () do wykonania akcji.
Powrót
Jeśli wartość jest obecna w tablicy, zwróci pozycję; W przeciwnym razie zwróci 0.
Przykład 1
W tym przykładzie otrzymamy pozycję wartości - „k” z kolumny nazwy Student_Full_Name w powyższym utworzonym DataFrame.
#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 importu *
#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óć pozycję wartości - k w każdym rzędzie kolumny nazwy Student_Full_name
df.Wybierz („Student_full_name”, array_position („student_full_name”, „k '))).pokazywać()
Wyjście
W drugiej kolumnie można zobaczyć, że zwrócono pozycje w tablicach we wszystkich rzędach.
- W pierwszym rzędzie k nie istnieje - dlatego zwrócił 0
- W drugim rzędzie k nie istnieje - stąd powrócił 0
- W trzecim rzędzie K istnieje na dwóch pozycjach, 1 i 3. - zajmuje tylko pierwszą pozycję, więc zwraca 0
- W czwartym rzędzie K istnieje w pierwszej pozycji - stąd powrócił 1
- W piątym rzędzie k nie istnieje - dlatego powrócił 0
Przykład 2
W tym przykładzie uzyskamy pozycję wartości - „a” z kolumny nazwy Student_Full_Name w powyższym utworzonym DataFrame.
#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 importu *
#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)
#return Pozycja wartości - A w każdym rzędzie kolumny nazwy Student_Full_Name
df.Wybierz („Student_full_name”, array_position („student_full_name”, „a '))).pokazywać()
Wyjście
W drugiej kolumnie można zobaczyć, że zwrócono pozycje w tablicach we wszystkich rzędach.
- W pierwszym rzędzie istnieje na pierwszej pozycji - stąd powrócił 1
- W drugim rzędzie A nie istnieje - stąd powrócił 0
- W trzecim rzędzie istnieje w drugiej pozycji- więc zwraca 2
- W czwartym rzędzie A nie istnieje - stąd powrócił 0
- W piątym rzędzie A nie istnieje - dlatego zwraca 0.
array_repeat ()
array_repeat () służy do powtarzania tablicy N czasów. Innymi słowy, powielnie tablicę i zastąpi N razy na wszystkie rzędy w kolumnie typu tablicy. Wymaga dwóch parametrów. Pierwszym parametrem jest nazwa kolumny typu tablicy, a drugi parametr musi się powtórzyć, co przyjmuje wartość liczbową, która odnosi się do liczby razy, aby powtórzyć tablicę.
Składnia
array_repeat (array_column, powtórz)
Parametry
- Array_Column to kolumna tablicy, która ma tablice o wartościach
- Powtórzenie przyjmuje wartość liczb całkowitą, aby powtórzyć tablicę we wszystkich wierszach
funkcja array_repeat () jest używana z metodą Select () do wykonania akcji.
Powrót
Jeśli zwróci powtarzane tablice w zagnieżdżonej tablicy.
Przykład 1
W tym przykładzie powtórzymy tablicę 2 razy we wszystkich rzędach kolumny nazwy Student_Full_Nam.
#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 importu *
#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)
#Wprowadź tablicę 2 razy
df.Wybierz („Student_full_name”, array_repeat („student_full_name”, 2))).zbierać()
Wyjście
[Row (student_full_name = ['a'], array_repeat (Student_Full_Name, 2) = [['a'], ['a']])),
Row (student_full_name = ['b', 'l', 'b'], array_repeat (student_full_name, 2) = [['b', 'l', 'b'], ['b', 'l', ' B']]),
Row (student_full_name = ['k', 'a', 'k'], array_repeat (student_full_name, 2) = [['k', 'a', 'k'], ['k', 'a', ' K ']]),
Row (student_full_name = ['k'], array_repeat (Student_Full_Name, 2) = [['k'], ['k']])),
Row (student_full_name = ['b', 'p'], array_repeat (Student_Full_Name, 2) = [['b', 'p'], ['b', 'p']])]
Widzimy, że tablica jest powtarzana 2 razy we wszystkich rzędach kolumny Student_Full_Name w zagnieżdżonej tablicy,
Przykład 2
W tym przykładzie powtórzymy tablicę 4 razy we wszystkich rzędach kolumny Student_Full_Name za pomocą array_repeat () i wyświetli się na podstawie danych za pomocą metody zbierania.
#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 importu *
#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)
#Wprowadź tablicę 4 razy
df.Wybierz („Student_full_name”, array_repeat („student_full_name”, 4))).zbierać()
Wyjście
[Row (Student_Full_Name = ['a'], array_repeat (Student_Full_Name, 4) = [['a'], ['a'], ['a'], ['a']]),
Row (student_full_name = ['b', 'l', 'b'], array_repeat (student_full_name, 4) = [['b', 'l', 'b'], ['b', 'l', ' B '], [' b ',' l ',' b '], [' b ',' l ',' b '])),
Row (student_full_name = ['k', 'a', 'k'], array_repeat (student_full_name, 4) = [['k', 'a', 'k'], ['k', 'a', ' K '], [' k ', „a”, „k”], [' k ', „a”, „k”])),
Row (student_full_name = ['k'], array_repeat (Student_Full_Name, 4) = [['k'], ['k'], ['k'], ['k']]),
Row (student_full_name = ['b', 'p'], array_repeat (student_full_name, 4) = [['b', 'p'], ['b', 'p'], ['b', 'p' ], ['B', 'p']])]
Widzimy, że tablica jest powtarzana 4 razy we wszystkich rzędach kolumny Student_Full_Name w zagnieżdżonej tablicy.
Wniosek
W tym artykule Pyspark widzieliśmy dwie różne funkcje tablicy. array_position () służy do zwrócenia pozycji określonej wartości w tablicy. Zauważyliśmy, że zwróci to pierwszą pozycję, gdyby w tablicy było wiele wartości. Następnie omówiliśmy metodę Array_Repeat (), która służy do powielania tablicy N we wszystkich wierszach. Powtarzane tablice są przechowywane w zagnieżdżonej tablicy. Obie funkcje używają metody select () do wykonywania funkcjonalności.