RDD oznacza odporne rozproszone zestawy danych. Możemy nazwać RDD jako podstawową strukturę danych w Apache Spark.
Musimy zaimportować RDD z Pyspark.Moduł RDD.
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ć jednowymiarowymi (danymi liniowymi) lub danymi dwuwymiarowymi (dane z kolumny Row).
W tym artykule Pyspark omówimy funkcje TakeOrderred () i Takeample ().
Pyspark TakeOrdered ()
Funkcja PYSPARK TakeOrdered () służy do zwrócenia nowego RDD w kolejności z istniejącego RDD.
Wymaga dwóch parametrów.
Składnia:
TakeOrdered (n, klucz)
Parametry:
- n służy do zwrócenia liczby elementów w kolejności w nowym RDD.
- Klucz jest opcjonalnym parametrem, który przyjmuje funkcję anonimową, aby uzyskać elementy w kolejności rosnącej lub zejściu.
W kolejności rosnącej funkcja może być - key = element Lambda: Element
W kolejności malejącej funkcja może być - klucz = element lambda: -element
Znak Minus (-) wymaga elementów w kolejności malejącej.
Jeśli nie zostanie to określone, elementy w nowym RDD będą w porządku rosnącym.
Przykład 1:
W tym przykładzie tworzymy RDD z 20 elementami i stosujemy funkcję TakeOrdered (), aby uzyskać pierwsze 10 elementów. Pierwsze 12 elementów osobno w kolejności rosnącej za pomocą parametru kluczowego.
#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ć())
#Ge 10 elementów z RDD w kolejności rosnącej
Wydrukuj („10 elementów z RDD w kolejności rosnącej z kluczem jako parametr:”, Student_marks.TakeOrdered (10, key = Lambda Element: Element))
#Ge 12 elementów z RDD w kolejności rosnącej
Wydrukuj („12 elementów z RDD w kolejności rosnącej z kluczem jako parametr:”, Student_marks.TakeOrdered (12, key = Lambda Element: Element))
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]
10 elementów z RDD w kolejności rosnącej z kluczem jako parametr: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementów z RDD w kolejności rosnącej z kluczem jako parametr: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]
Możesz zobaczyć, że nowe RDD są zwracane z elementami w kolejności rosnącej.
Przykład 2:
W tym przykładzie tworzymy RDD z 20 elementami i stosujemy funkcję TakeOrdered (), aby uzyskać pierwsze 10 elementów. Pierwsze 12 elementów jest oddzielone w kolejności rosnącej bez kluczowego parametru.
#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ć())
#Ge 10 elementów z RDD w kolejności rosnącej
Wydrukuj („10 elementów z RDD w kolejności rosnącej:”, Student_marks.TakeOrdered (10))
#Ge 12 elementów z RDD w kolejności rosnącej
Drukuj („12 elementów z RDD w kolejności rosnącej:”, Student_marks.TakeOrdered (12))
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]
10 elementów z RDD w kolejności rosnącej: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementów z RDD w kolejności rosnącej: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]
Widać, że nowe RDD są zwracane z elementami w kolejności rosnącej nadal bez kluczowego parametru.
Przykład 3:
W tym przykładzie tworzymy RDD z 20 elementami i stosujemy funkcję TakeOrdered (), aby uzyskać pierwsze 10 elementów. Pierwsze 12 elementów jest oddzielone w kolejności malejącej.
#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ć())
#Ge 10 elementów z RDD w kolejności malejącej
Drukuj („10 elementów z RDD w kolejności malejącej:”, Student_marks.TakeOrdered (10, key = Lambda Element: -element))
#Ge 12 elementów z RDD w kolejności malejącej
Drukuj („12 elementów z RDD w kolejności malejącej:”, Student_marks.TakeOrdered (12, key = Lambda Element: -element))
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]
10 elementów z RDD w kolejności malejącej: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56]
12 elementów z RDD w kolejności malejącej: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56, 54, 45]
Możesz zobaczyć, że nowe RDD są zwracane z elementami w kolejności malejącej. W tym przypadku musisz określić kluczowy parametr.
Pyspark Takeample ()
Funkcja PYSPARK Takeample () służy do zwrócenia nowego RDD z losowymi wartościami z istniejącego RDD. Wymaga dwóch parametrów.
Składnia:
Takeample (zamień, n)
Parametry:
- Wymień przyjmuje wartości logiczne. Jeśli jest ustawiony na true, wówczas losowe wartości powracające do nowego RDD są unikalne (nie są powtarzane/wymieniane ponownie). Jeśli jest ustawiony na false, wówczas losowe wartości powracające do nowego RDD można powtórzyć (można je powtórzyć/wymienić ponownie)
- n służy do zwrócenia liczby losowych elementów do nowego RDD.
Przykład 1:
W tym przykładzie utworzymy RDD z 20 elementami i zwrócimy 10 elementów. 12 elementów jest oddzielone bez wymiany.
#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ć())
#ge 10 elementów z RDD bez wymiany
Drukuj („10 elementów z RDD bez wymiany:”, Student_marks.Takesample (False, 10))
#ge 12 elementów z RDD bez wymiany
Drukuj („12 elementów z RDD bez wymiany:”, Student_marks.Takeample (False, 12))
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]
10 elementów z RDD bez wymiany: [89, 23, 78, 56, 43, 100, 89, 78, 76, 21]
12 elementów z RDD bez wymiany: [89, 23, 43, 54, 34, 45, 78, 56, 22, 56, 34, 34]
Możemy zauważyć, że losowe wartości nie są zastępowane w nowym RDD.
Przykład 2:
W tym przykładzie utworzymy RDD z 20 elementami i zwrócimy 10 elementów. 12 elementów jest oddzielone zastępstwem.
#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ć())
#ge 10 elementów z RDD z wymianą
Drukuj („10 elementów z RDD z zastępowaniem:”, Student_marks.Takeample (True, 10))
#ge 12 elementów z RDD z zastępowaniem
Drukuj („12 elementów z RDD z zastępowaniem:”, Student_marks.Takesample (True, 12))
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]
10 elementów z RDD z wymianą: [90, 34, 78, 34, 34, 89, 23, 22, 76, 21]
12 elementów z RDD z wymianą: [43, 78, 78, 78, 78, 89, 21, 100, 89, 78, 34, 22]
Możemy zauważyć, że losowe wartości są zastępowane w obu nowych RDD, ponieważ ustawiamy parametr na true.
Wniosek
W tym samouczku Pyspark widzieliśmy, jak używać funkcji TakeOrdered () i Takeample () na RDD. Oba są używane do zwrotu nowego RDD z istniejącego RDD.
TakeOrdered () zwraca nowy RDD z istniejącego RDD z elementami w kolejności sortowania. Możliwe jest uzyskanie posortowanych danych w kolejności malejącej za pomocą kluczowego parametru za pośrednictwem funkcji Lambda.
Takeample () zwraca nowy RDD z istniejącego RDD z pewnymi elementami losowo. Możliwe jest powtórzenie losowo wygenerowanych wartości w nowym RDD za pomocą parametru zastępowania.