Pyspark Shuffle i sort_array

Pyspark Shuffle i sort_array
„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

To odnosi się do pola liczb całkowitych do przechowywania identyfikatorów studentów i drugiej kolumny - 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:

człapać()

Shuffle () służy do przetasowania wartości w tablicy dla wszystkich wierszy w kolumnie typu tablicy Pyspark Dataframe. Zwróci nową tablicę z taskowymi wartościami. Bierze nazwę kolumny typu tablicy jako parametr. Pamiętaj, że losowo tasuje.

Składnia:

Shuffle (array_column)

Parametr:

Array_Column to kolumna tablicy, która ma tablice o wartościach

Funkcja shuffle () jest używana z metodą Select () do wykonania akcji.

Powrót:

Zwróci tablicę z taskowymi wartościami.

Przykład

W tym przykładzie użyjemy funkcji shuffle (), aby tasować wartości obecne w kolumnie Student_Full_Name.

#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)
#Shfle Wartości tablicy w kolumnie Student_Full_Name
df.Wybierz („Student_full_name”, Shuffle („Student_full_name”))).pokazywać()

Wyjście:

W drugiej kolumnie widać, że wartości w tablicy zostały potworne.

sort_array ()

sort_array () służy do sortowania elementów w tablicy. Wymaga dwóch parametrów; Pierwszym parametrem jest nazwa kolumny typu tablicy, a drugim parametrem jest ASC, który przyjmuje wartości logiczne. Jeśli to prawda, tablica jest sortowana w kolejności rosnącej. Jeśli jest to fałszywe, tablica jest sortowana w kolejności malejącej. Domyślnie sortuje tablicę w kolejności rosnącej.

Składnia:

sort_array (array_column, ASC = true/false)

Parametry:

  1. Array_Column to kolumna tablicy, która ma tablice o wartościach
  2. ASC bierze wartości logiczne, aby sortować tablicę w ramach rosnącej lub zstępującej.

Funkcja sort_array () jest używana z metodą Select () do wykonania akcji.

Powrót:

Jeśli zwraca tablicę posortowaną dla wszystkich wierszy w kolumnie typu tablicy.

Przykład 1

W tym przykładzie sortujemy kolumnę Student_Full_Name w kolejności rosnącej.

#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)
#Sort wartości macierzy w kolumnie Student_Full_Name w kolejności rosnącej
df.Wybierz („Student_full_name”, sort_array („student_full_name”, ASC = true))).pokazywać()

Wyjście:

W drugiej kolumnie widać, że tablica jest sortowana w kolejności rosnącej dla wszystkich wierszy.

Przykład 2

W tym przykładzie sortujemy kolumnę Student_Full_Name w kolejności malejącej.

#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)
#Sort wartości tablicy w kolumnie Student_Full_Name w kolejności malejącej
df.Wybierz („Student_full_name”, sort_array („student_full_name”, ASC = false))).pokazywać()

Wyjście:

W drugiej kolumnie widać, że tablica jest sortowana w kolejności malejącej dla wszystkich wierszy.

Wniosek

W tym artykule Pyspark widzieliśmy dwie różne funkcje tablicy. Shuffle () służy do przetasowania wartości w kolumnie typu tablicy. Następnie omówiliśmy metodę sort_array () używaną do sortowania tablic w kolumnie typu tablicy. Jeśli chcesz posortować tablicę w kolejności malejącej, możesz użyć parametru ASC ustawionego na false.