PARY PYSPARK RDD - Transformacje

PARY 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. Parę RDD przechowuje elementy/wartości w postaci par kluczowych. Będzie przechowywać parę wartości kluczowej w formacie (klucz, wartość).

Musimy zaimportować RDD z Pyspark.Moduł RDD.

Tak więc w Pyspark możemy użyć metody równoległości () do utworzenia RDD,.

Składnia:

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

Gdzie,

Dane mogą być jednowymiarowymi (dane liniowe) lub dwuwymiarowe (dane z kolumny Row)).

Transformacje RDD:

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

Zobaczmy transformacje wykonywane na danej parie RDD.

Omówimy je jeden po drugim.

GroupByey

GroupBykey służy do przeprowadzenia transformacji w parach RDD poprzez grupowanie wartości na podstawie klucza. Umieści wszystkie zgrupowane wartości na liście, a następnie klucz.

Składnia:

parardd_data.GroupByey ()

Użyjemy pętli do iteracji klawiszy i wartości i umieszczamy wartości wewnątrz listy za pomocą funkcji List ().

Przykład:

W tym przykładzie stworzyliśmy parę RDD - Temats_rating i przeprowadziliśmy transformację GroupByey () na wartości grupowe w odniesieniu do klucza. Więc użyliśmy pętli do iteracji klawiszy i wartości, a na koniec wyświetliśmy każdą grupę klucza i wartości.

#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 6 - Pary tematyczne i oceny
tematy_rating = Spark_App.SparkContext.równoległość ((„Python”, 4), („JavaScript”, 2), („Linux”, 5), („C#”, 4), („javascript”, 4), („Python”, 3) ])
#Apply GroupByey () Transformacja na powyższych tematach pary RDD
Dictionary_rdd = podmioty_rating.GroupByey ().zbierać()
#Zapisz klawisze i wszystkie wartości WRT do klawiszy z powyższego słownika RDD
W przypadku klawiszy wartości w Dictionary_rdd:
drukuj (klucze, „->”, lista (wartości))

Wyjście:

Python -> [4, 3]
JavaScript -> [2, 4]
Linux -> [5]
C# -> [4]

W powyższej parze Para RDD istnieją dwie wartości powiązane z kluczem-Python i Key-JavaScript oraz tylko jedna wartość powiązana z Linux i C#.

Sportbike

SortByKey służy do przeprowadzenia transformacji na pary RDD, zwracając nową parę RDD w kolejności rosnącej na podstawie klucza. Tak więc ta transformacja sortuje elementy w parach RDD według klucza.

Składnia:

parardd_data.sortbyKey ()

Przykład:

W tym przykładzie utworzyliśmy parę RDD - Temess_rating i przeprowadziliśmy transformację sortbyKey (), aby zwrócić sortowane wartości na podstawie akcji Key i Applied Collect (), aby uzyskać posortowaną parę 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 6 - Pary tematyczne i oceny
tematy_rating = Spark_App.SparkContext.równoległość ((„Python”, 4), („JavaScript”, 2), („Linux”, 5), („C#”, 4), („javascript”, 4), („Python”, 3) ])
#Apply SortbyKey () Transformacja na powyższych tematach_rating, aby sortować klucze w kolejności rosnącej
Drukuj (podmioty_rating.sortbyKey ().zbierać())
.

Wyjście:

[(„C#”, 4), („JavaScript”, 2), („JavaScript”, 4), („Linux”, 5), („Python”, 4), („Python”, 3)]

Widzimy, że nowa sortowana para RDD jest zwracana przez sortowanie na podstawie klucza w rzeczywistej pary RDD - Temats_rating.

ReducingBykey

RUDELYKEKEY służy do przeprowadzenia transformacji na parze RDD poprzez przetwarzanie danych równoległych w celu połączenia wartości z podobnymi klawiszami. Wykorzystał niektóre funkcje, takie jak Lambda () do połączenia wartości na podstawie klucza poprzez wykonanie pewnej operacji w funkcji.

Składnia:

parardd_data.RUINDBYKEY (funkcja Lambda)

Funkcja Lambda:

Lambda Element1, Element2: Operacja

Przykład:

W tym przykładzie stworzyliśmy parę RDD - Temats_rating i przeprowadziliśmy transformację RuliveBykey (), aby wykonać

  1. Suma podobnych wartości w odniesieniu do klucza
  2. Różnica podobnych wartości w odniesieniu do klucza
  3. Mnożenie podobnych wartości w odniesieniu do klucza
  4. Podział podobnych wartości w odniesieniu do klucza

Na koniec możemy użyć akcji zbiorowej () do wyświetlania każdej przekształconej pary 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 6 - Pary tematyczne i oceny
tematy_rating = Spark_App.SparkContext.równoległość ((„Python”, 4), („JavaScript”, 2), („Linux”, 5), („C#”, 4), („javascript”, 4), („Python”, 3) ])
#Apply Ruckeykey () Transformacja powyższych osób, aby zmniejszyć klawisze, dodając wartości o podobnych klawiszach
Drukuj (podmioty_rating.RUINEBYKEY (Lambda Element1, Element2: Element1 + Element2).zbierać())
#apply Ruckeykey () Transformacja powyższych osób, aby zmniejszyć klawisze poprzez odejmowanie wartości od podobnych klawiszy
Drukuj (podmioty_rating.RUINEBYKEY (Lambda Element1, Element2: Element1 - Element2).zbierać())
#apply Ruckeykey () Transformacja powyższych osób, aby zmniejszyć klawisze poprzez pomnożenie wartości z podobnymi klawiszami
Drukuj (podmioty_rating.RUINEBYKEY (Lambda Element1, Element2: Element1 * Element2).zbierać())
#apply Ruckeykey () Transformacja powyższych osób, aby zmniejszyć klucze, dzieląc wartości z podobnymi klawiszami
Drukuj (podmioty_rating.RUINEBYKEY (Lambda Element1, Element2: Element1 / Element2).zbierać())

Wyjście:

[(„Python”, 7), („JavaScript”, 6), („Linux”, 5), („C#”, 4)]
[(„Python”, 1), („JavaScript”, -2), („Linux”, 5), ('c#', 4)]
[(„Python”, 12), („JavaScript”, 8), („Linux”, 5), („C#”, 4)]
[(„Python”, 1.3333333333333333), („JavaScript”, 0.5), („Linux”, 5), („C#”, 4)]
Dla kluczowego-Python: Wartości to 4 i 3
Suma: 4+3 = 7
Różnica to: 4-3 = 1
Mnożenie: 4*3 = 12
Podział to: 4/3 = 1.3333
Dla klucza-javascript: Wartości to 2 i 4
Suma: 2+4 = 6
Różnica to: 2-4 = -1
Mnożenie: 2*4 = 8
Podział to: 2/4 = 0.5

Dla klawisz-linux i c#: Jest tylko jedna wartość dla każdego, więc wszystkie wynikowe operacje są takie same i.mi.

Wniosek

Z tego artykułu RDD widzieliśmy, co to jest transformacja i jak zastosować transformacje pary RDD. Istnieją trzy transformacje, które omówiliśmy: GroupByey () służy do łączenia wszystkich wartości na podstawie klucza, SortByKey () zwraca nową parę RDD, sortowanie pary RDD na podstawie kluczy w kolejności rosnącej i redukowania () będzie łączyć wartości z względem Klucz poprzez wykonanie operacji za pomocą funkcji anonimowych, takich jak funkcja Lambda.