PYSPARK RDD - Transformacje

PYSPARK RDD - Transformacje
W Pythonie PySpark jest modułem iskry używanym do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark.

RDD oznacza odporne rozproszone zestawy danych. Możemy nazwać RDD podstawową strukturą danych w Apache Spark.

Musimy zaimportować RDD z Pyspark.Moduł RDD.

Więc w PYSPARK, aby utworzyć RDD, możemy użyć metody równoległości ().

Składnia:

Spark_App.SparkContext.równoległość (dane)

Gdzie,

Dane mogą być jednym wymiarami (dane liniowe) lub danych dwuwymiarowych (dane z kolumny wierszy).

Transformacje RDD:

RDD transformacji to operacja stosowana do RDD w celu tworzenia nowych danych z istniejącego RDD. Korzystając z transformacji, jesteśmy w stanie filtrować RDD, stosując niektóre transformacje.

Zobaczmy transformacje przeprowadzane na podanym RDD.

Omówimy je jeden po drugim.

1. mapa()

Transformacja map () służy do mapowania wartości do elementów obecnych w RDD. Wymaga anonimowej funkcji jako parametru, takiej jak Lambda i przekształca elementy w RDD.

Składnia:

Rdd_data.mapa (anonimowa czynność)

Parametry:

Anonimowa funkcja wygląda jak:

Element Lambda: Operacja

Na przykład operacja polega na dodaniu/odjęciu wszystkich elementów za pomocą nowego elementu.

Zobaczmy przykłady, aby lepiej zrozumieć tę transformację.

Przykład 1:

W tym przykładzie tworzymy RDD o nazwie Student_marks z 20 elementami i stosujemy transformację map (), dodając każdy element z 20 i wyświetlając je za pomocą akcji Collect ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
student_marks = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w RDD:”, Student_marks.Mapa (element Lambda: Element).zbierać())
#Apply Map () Transformacja poprzez dodanie 20 do każdego elementu w RDD
Drukuj („Po dodaniu 20 do każdego elementu w RDD:”, Student_marks.Mapa (element Lambda: element+ 20).zbierać())

Wyjście:

Rzeczywiste dane w RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Po dodaniu 20 do każdego elementu w RDD: [109, 96, 98, 109, 110, 120, 54, 76, 74, 42, 65, 63, 43, 76, 98, 41, 54, 54, 76, 54]

Z powyższego wyjścia widać, że element 20 jest dodawany do każdego elementu w RDD poprzez funkcję Lambda za pomocą transformacji map ().

Przykład 2:

W tym przykładzie tworzymy RDD o nazwie Student_marks z 20 elementami i stosujemy transformację map (), odejmując każdy element przez 15 i wyświetlanie go za pomocą akcji zbiorowej ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
student_marks = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w RDD:”, Student_marks.Mapa (element Lambda: Element).zbierać())
#Apply Map () Transformacja przez odejmowanie 15 od każdego elementu w RDD
Drukuj („Po odjęciu 15 z każdego elementu w RDD:”, Student_marks.Mapa (element Lambda: element 15).zbierać())

Wyjście:

Rzeczywiste dane w RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Po odjęciu 15 od każdego elementu w RDD: [74, 61, 63, 74, 75, 85, 19, 41, 39, 7, 30, 28, 8, 41, 63, 6, 19, 19, 41, 19]

Z powyższego wyjścia widzimy, że element 15 jest odejmowany do każdego elementu w RDD poprzez funkcję Lambda za pomocą transformacji map ().

2. filtr()

transformacja filtr () służy do filtrowania wartości z RDD. Podejmuje anonimową funkcję, taką jak Lambda i zwraca elementy, filtrując elementy z RDD.

Składnia:

Rdd_data.Filtr (Anonimowy_funkcja)

Parametry:

Anonimowa funkcja wygląda jak:

Element Lambda: Warunek/wyrażenie

Na przykład warunek służy do określenia instrukcji ekspresyjnych w celu filtrowania RDD.

Zobaczmy przykłady, aby lepiej zrozumieć tę transformację.

Przykład 1:

W tym przykładzie tworzymy RDD o nazwie Student_marks z 20 elementami i stosujemy transformację filtr (), filtrując tylko wielokrotności 5 i wyświetlanie ich za pomocą akcji COBOLD ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
student_marks = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w RDD:”, Student_marks.Mapa (element Lambda: Element).zbierać())
#Apply Filter () Transformacja poprzez zwracanie inly wielokrotności 5.
Drukuj („Mnożniki 5 z RDD:”, Student_marks.Filtr (element Lambda: element%5 == 0).zbierać())
)

Wyjście:

Rzeczywiste dane w RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Mnożniki 5 z RDD: [90, 100, 45]

Z powyższego wyjścia widać, że wielokrotności 5 elementów są filtrowane z RDD.

Przykład 2:

W tym przykładzie tworzymy RDD o nazwie Student_marks z 20 elementami i stosujemy transformację filtr () poprzez filtrowanie elementów większych niż 45 i wyświetlanie ich za pomocą akcji zbiorów ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
student_marks = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w RDD:”, Student_marks.Mapa (element Lambda: Element).zbierać())
#Apply Filter () Transformacja poprzez filtrowanie wartości większych niż 45
Drukuj („Wartości większe niż 45:”, Student_marks.Filtr (element Lambda: element> 45).zbierać())

Wyjście:

Rzeczywiste dane w RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Wartości większe niż 45: [89, 76, 78, 89, 90, 100, 56, 54, 56, 78, 56]

Z powyższego wyjścia widzimy, że te elementy większe niż 45 są filtrowane z RDD.

3. unia()

transformacja Union () służy do połączenia dwóch RDD. Możemy wykonać tę transformację na dwóch RDD…

Składnia:

Rdd_data1.Union (rdd_data2)

Zobaczmy przykłady, aby lepiej zrozumieć tę transformację.

Przykład 1:

W tym przykładzie utworzymy pojedynczy RDD z danymi znaków studenckich i wygenerujemy dwa RDD z pojedynczego RDD, filtrując niektóre wartości za pomocą transformacji Filter (). Następnie możemy przeprowadzić transformację Union () na dwóch przefiltrowanych RDD.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
student_marks = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w RDD:”, Student_marks.Mapa (element Lambda: Element).zbierać())
First_filter = Student_marks.Filtr (element Lambda: element> 90)
Second_filter = Student_marks.Filtr (element Lambda: element <40)
#Display Pierwsza przefiltrowana transformacja
Drukuj („Elementy w RDD większe niż 90”, First_filter.zbierać())
#Display Druga przefiltrowana transformacja
Drukuj („Elementy w RDD mniej niż 40”, Second_filter.zbierać())
#Apply Union () Transformation poprzez wykonanie Unii na powyższych 2 filtrach
Drukuj („Transformacja Unii na dwóch przefiltrowanych danych”, First_filter.Union (Second_filter).zbierać())

Wyjście:

Rzeczywiste dane w RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Elementy w RDD większe niż 90 [100]
Elementy w RDD mniej niż 40 [34, 22, 23, 21, 34, 34, 34]
Transformacja związkowa na dwóch przefiltrowanych danych [100, 34, 22, 23, 21, 34, 34, 34]

Z powyższego wyjścia widać, że wykonaliśmy Union na First_filter i Second_filter.

First_filter jest uzyskiwany przez uzyskanie elementów od uczniów RDD większe niż 90, a drugie filter uzyskuje się przez uzyskanie elementów od uczniów RDD mniej niż 40 za pomocą transformacji Filter ().

Przykład 2:

W tym przykładzie utworzymy dwa RDD, tak że pierwszy RDD ma 20 elementów, a drugi RDD ma 10 elementów. Następnie możemy zastosować transformację Union () do tych dwóch RDD.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane uczniów z 20 elementami
Student_marks1 = Spark_App.SparkContext.równoległe ([89,76,78,89,90 100, 34,56,54,22,45,43,23,56,78,21,34,34,56,34])
# Utwórz dane uczniów z 10 elementami
student_marks2 = Spark_App.SparkContext.równoległość ([45,43,23,56,78,21,34,34,56,34]))
#Display Dane w RDD
Drukuj („Rzeczywiste dane w znakach studenckich 1 RDD:”, Student_marks1.Mapa (element Lambda: Element).zbierać())
#Display Dane w RDD
Drukuj („Rzeczywiste dane w znakach studenckich 2 RDD:”, Student_marks2.Mapa (element Lambda: Element).zbierać())
#Apply Union () Transformation poprzez wykonanie Unii na powyższych 2 RDD
Drukuj („Transformacja Unii na dwóch RDD”, student_marks1.Union (student_marks2).zbierać())

Wyjście:

Rzeczywiste dane w znakach studenckich 1 RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Rzeczywiste dane w znakach studenckich 2 RDD: [45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
Transformacja Unii na dwóch RDD [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]

Widzimy, że dwa RDD są łączone przy użyciu transformacji Union ().

Wniosek

Z tego samouczka Pyspark widzimy trzy transformacje zastosowane do RDD. MAP () Transformacja służy do mapowania przez transformację elementów w RDD, Filter () służy do wykonywania operacji filtra i utworzenia nowego filtrowanego RDD z istniejącego RDD. Na koniec omówiliśmy Union () RDD, który służy do połączenia dwóch RDD.