W Python PYSPARK to moduł Spark używany do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark za pomocą DataFrame.
RDD oznacza odporne rozproszone zestawy danych. Możemy nazwać RDD podstawową strukturą danych w Apache Spark. Będzie przechowywać dane w postaci wierszy i kolumn podobnych do ramki danych lub liniowo.
Musimy zaimportować RDD z Pyspark.Moduł RDD.
Więc w PYSPARK, aby tworzyć dane lub ramkę danych, musimy użyć metody równoległości ().
Składnia:
Spark_App.SparkContext.równoległość (dane)
Gdzie,
Dane mogą być jednowymiarowymi (dane liniowe) lub dwuwymiarowe (dane z kolumny Row)).
W tym samouczku dowiemy się o operacjach PYSPARK RDD SUMPRRACT () i DISTRICAT ().
PYSPARK RDD - Intersection ()
skrzyżowanie() W RDD zwróci nowy RDD, który zawiera elementy obecne w pierwszym RDD, a także drugie RDD. Po prostu zwraca tylko wspólne elementy z obu RDD.
Potrzebujemy więc dwóch RDD, aby wykonać tę operację.
Składnia:
Rdd_data1.przecięcie (rdd_data2)
Gdzie,
- RDD_DATA1 to pierwszy RDD.
- RDD_DATA2 to drugi RDD.
Przykład 1:
W tym przykładzie utworzymy dwa RDD z danymi liczbowymi - podmiotami_1 i podmiotami i wykonamy Ventsection () na dwóch RDDS.
#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 5 - Znaki tematyczne
tematy_1 = Spark_App.SparkContext.równoległość ([100,34,56,54,45]))
#Display Subjets_1 rdd
drukuj („tematy_1 rdd:”, tematy_1.zbierać())
# Utwórz 5 - Znaki tematyczne
tematy_2 = Spark_App.SparkContext.równoległość ([90,89,34,56,45]))
#Display Subjets_2 rdd
drukuj („tematy_2 rdd:”, tematy_2.zbierać())
#Perform Intersection () Operacja powyżej dwóch RDD
print („Intersection () Operacja na temat_1 i tematy_2:”, tematy_1.skrzyżowanie (podmiot_2).zbierać())
Wyjście:
Temats_1 rdd: [100, 34, 56, 54, 45]
tematy_2 rdd: [90, 89, 34, 56, 45]
Intersection () Operacja na temat_1 i podmiotów_2: [56, 45, 34]
Ze wyjścia widać, że w obu RDD jest 5 elementów.
Wykonujemy skrzyżowanie na temat podmiotów_1 i podmiotów_2. Tutaj 56,45 i 34 są obecne w podmiotach_1 i podmiotach_2. Więc zostali zwróceni.
Przykład 2:
W tym przykładzie utworzymy dwa RDD z Strings - Temess_1 i Temess_2 i wykonamy Vinsection () na dwóch RDDS.
#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 3 - Nazwy tematów
tematy_1 = Spark_App.SparkContext.równoległość ([„Linux”, „bash”, „javascript”])
#Display Subjets_1 rdd
drukuj („tematy_1 rdd:”, tematy_1.zbierać())
# Utwórz 2 - Nazwy tematów
tematy_2 = Spark_App.SparkContext.równoległość ([„Linux”, „java”])
#Display Subjets_2 rdd
drukuj („tematy_2 rdd:”, tematy_2.zbierać())
#Perform Intersection () Operacja powyżej dwóch RDD
print („Intersection () Operacja na temat_1 i tematy_2:”, tematy_1.skrzyżowanie (podmiot_2).zbierać())
Wyjście:
tematy_1 rdd: [„Linux”, „bash”, „javascript”]
tematy_2 rdd: [„Linux”, „java”]
Intersection () Operacja na temat_1 i podmiotów_2: ['Linux']
Ze wyjścia widzimy, że tylko „Linux” jest powszechne w obu RDDS. Więc jest zwracany.
PYSPARK RDD - CARTESIAN ()
kartezjański() W RDD zwróci nowy RDD, który zawiera wszystkie elementy z obu RDD. Zwraca produkt kartezjański, tak że każdy element w pierwszym RDD jest połączony ze wszystkimi elementami z drugiego RDD w postaci pary.
Potrzebujemy więc dwóch RDD, aby wykonać tę operację.
Składnia:
Rdd_data1.kartezja (rdd_data2)
Gdzie,
- RDD_DATA1 to pierwszy RDD.
- RDD_DATA2 to drugi RDD.
Przykład 1:
W tym przykładzie utworzymy dwa RDD z danymi numerycznymi - podmioty_1 i tematu_2 i wykonamy cartesian () na dwóch RDDS.
#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 2 - Znaki tematyczne
tematy_1 = Spark_App.SparkContext.równoległość ([100,34])
#Display Subjets_1 rdd
drukuj („tematy_1 rdd:”, tematy_1.zbierać())
# Utwórz 2 - Znaki tematyczne
tematy_2 = Spark_App.SparkContext.równoległość ([56,45])
#Display Subjets_2 rdd
drukuj („tematy_2 rdd:”, tematy_2.zbierać())
#Perform Cartesian () Operacja powyżej dwóch RDD
print („cartesian () Operacja na tematy_1 i tematu_2:”, tematy_1.kartezjan (tematy_2).zbierać())
Wyjście:
tematy_1 rdd: [100, 34]
tematy_2 rdd: [56, 45]
Operacja cartesian () na temat podmiotów_1 i podmiotów_2: [(100, 56), (100, 45), (34, 56), (34, 45)]]
Ze wyjścia widać, że w obu RDD są 2 elementy.
Wykonujemy kartezjan na tematy_1 i tematy_2. Elementy z podmiotów_1 są sparowane z każdym elementem w podmiotach_2.
Przykład 2:
W tym przykładzie utworzymy dwa RDD z Strings - Temess_1 i Temess_2 i wykonamy kartezjan () na dwóch RDDS.
#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 3 - Nazwy tematów
tematy_1 = Spark_App.SparkContext.równoległość ([„Linux”, „bash”, „javascript”])
#Display Subjets_1 rdd
drukuj („tematy_1 rdd:”, tematy_1.zbierać())
# Utwórz 2 - Nazwy tematów
tematy_2 = Spark_App.SparkContext.równoległość ([„Linux”, „java”])
#Display Subjets_2 rdd
drukuj („tematy_2 rdd:”, tematy_2.zbierać())
#Perform Cartesian () Operacja powyżej dwóch RDD
print („cartesian () Operacja na tematy_1 i tematu_2:”, tematy_1.kartezjan (tematy_2).zbierać())
Wyjście:
tematy_1 rdd: [„Linux”, „bash”, „javascript”]
tematy_2 rdd: [„Linux”, „java”]
cartesian () Operacja na temat_1 i tematy_2: [(„Linux”, „Linux”), („Linux”, „java”), („bash”, „Linux”), („JavaScript”, „Linux”), („Bash”, „java”), („javascript”, „java”)]
Z wyjścia widać, że w pierwszym RDD są 3 elementy i 2 elementy w drugim RDD.
Wykonujemy kartezjan na tematy_1 i tematy_2. Tutaj elementy z podmiotów_1 są sparowane z każdym elementem w Subects_2.
Wniosek
W tym samouczku Pyspark RDD widzieliśmy, jak wykonać Vinsection () i Cartesian (). Potrzebujemy dwóch RDD do wykonania tych operacji.Intersection () zwraca tylko wspólne elementy zarówno z RDD, jak i Cartesian () zwraca produkt kartezjański, tak że każdy element w pierwszym RDD jest łączony ze wszystkimi elementami z drugiego RDD w postaci pary.