W tym artykule wprowadzimy i zademonstrujemy metody Zip (), ZipwithIndex () i ZipwithuniqueiD ().
Zanim zaczniemy te metody, musimy zaimportować RDD z Pyspark.Moduł RDD. RDD oznacza odporne rozproszone zestawy danych. Możemy nazwać RDD jako podstawową strukturę danych w Apache Spark. 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ć jednodomijowymi (dane liniowe) lub danymi dwuwymiarowymi (dane z kolumny wierszy).
W tym artykule Pyspark omówimy Zip (), ZipwithIndex () i Zipwithuniqueid ().
Pyspark Zip ()
Funkcja PYSPARK ZIP () służy do łączenia wartości w parach RDD jako parach poprzez zwrócenie nowego RDD.
Składnia:
RDD Data1.Zip (rdd_data2)
Tutaj:
- RDD_DATA1 to pierwszy RDD
- RDD_DATA2 to drugi RDD
Notatka że całkowita liczba elementów w RDD musi być taka sama. W przeciwnym razie zwróci błąd.
Przykład 1:
W tym przykładzie zwrócimy zapinane na zamek RDD z Student_marks1 i Student_marks2 Numeric 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 dane uczniów z 5 elementami
Student_marks1 = Spark_App.SparkContext.równoległość ([89,76,78,89,90])
# Utwórz dane uczniów z 5 elementami
student_marks2 = Spark_App.SparkContext.równoległość ([1,2,3,4,5])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w studenta_marks1:”, student_marks1.Mapa (element Lambda: Element).zbierać())
Drukuj („Rzeczywiste dane w studenta_marks2:”, student_marks2.Mapa (element Lambda: Element).zbierać())
#zip dwa RDD za pomocą Zip ()
Drukuj (student_marks1.Zip (student_marks2).zbierać())
Wyjście:
Rzeczywiste dane w Student_marks1: [89, 76, 78, 89, 90]
Rzeczywiste dane w Student_marks2: [„1”, 2, 3, 4, 5]
[(89, „1”), (76, 2), (78, 3), (89, 4), (90, 5)]
Widzimy, że każda wartość w pierwszym RDD jest połączona z drugim RDD.
Przykład 2:
W tym przykładzie zwrócimy zapinane na zamek RDD z Student_marks1 i Student_marks2 String 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 dane przedmiotów studenckich z 2 elementami
podmioty1 = Spark_App.SparkContext.równoległość ([„Python”, „java”])
# Utwórz dane przedmiotów studenckich z 2 elementami
podmioty2 = Spark_App.SparkContext.równoległość ([„html”, „java”])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w podmiotach1:”, podmioty1.Mapa (element Lambda: Element).zbierać())
Drukuj („Rzeczywiste dane w podmiotach2:”, podmioty2.Mapa (element Lambda: Element).zbierać())
#zip dwa RDD za pomocą Zip ()
Drukuj (podmioty1.Zip (podmioty2).zbierać())
Wyjście:Rzeczywiste dane w podmiotach1: [„Python”, „Java”]
Rzeczywiste dane w podmiotach 2: [„html”, „java”]
[(„Python”, „html”), („java”, „java”)]
Widzimy, że wartości z obu RDD są zamykane.
PYSPARK ZIPWITHINDEX ()
Funkcja PYSPARK ZIPWITHINDEX () jest używana do łączenia wartości w jednym RDD z wartościami. Tutaj wartości domyślnie zaczynają od 0.
Składnia:
Rdd_data.ZipwithIndex ()
Tutaj rdd_data to RDD
Przykład 1:
W tym przykładzie utworzyliśmy jeden RDD z 2 elementami ciągów i ZIP z wartościami za pomocą ZipwithIndex ().
#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 przedmiotów studenckich z 2 elementami
podmioty1 = Spark_App.SparkContext.równoległość ([„Python”, „java”])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w podmiotach1:”, podmioty1.Mapa (element Lambda: Element).zbierać())
#zip dwa RDD za pomocą ZipwithIndEx ()
Drukuj (podmioty1.ZipwithIndex ().zbierać())
Wyjście:
Rzeczywiste dane w podmiotach1: [„Python”, „Java”]
[(„Python”, 0), („java”, 1)]
Widzimy, że wartość Python jest rozdarta wartością 0, a Java jest zapinana na wartość 1.
Przykład 2:
W tym przykładzie utworzyliśmy jeden RDD z 6 elementami ciągów i ZIP z wartościami za pomocą ZipwithIndex ().
#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 przedmiotów studenckich z 6 elementami
podmioty1 = Spark_App.SparkContext.równoległość („Python”, „Java”, „Python”, „Java”, „Python”, „java”])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w podmiotach1:”, podmioty1.Mapa (element Lambda: Element).zbierać())
#zip dwa RDD za pomocą ZipwithIndEx ()
Drukuj (podmioty1.ZipwithIndex ().zbierać())
Wyjście:
Rzeczywiste dane w podmiotach1: [„Python”, „Java”, „Python”, „Java”, „Python”, „Java”]
[(„Python”, 0), („java”, 1), („Python”, 2), („java”, 3), („Python”, 4), („java”, 5)]
Pyspark Zipwithuniqueid ()
Funkcja Pyspark Zipwithuniqueid () jest podobna do powyższej metody, ale wartości tworzące parę są w następującym wzorze:
k, 1*n+k, 2*n+k, 3*n+k… .
n reprezentuje liczbę partycji.
Składnia:
Rdd_data.zipwithuniqueid ()
Tutaj rdd_data to RDD
Między wartościami zapinanymi może być wiele luk.
Przykład:
#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 przedmiotów studenckich z 6 elementami
podmioty1 = Spark_App.SparkContext.równoległość („Python”, „Java”, „Python”, „Java”, „Python”, „java”])
#Display Dane w RDD
Drukuj („Rzeczywiste dane w podmiotach1:”, podmioty1.Mapa (element Lambda: Element).zbierać())
#zip dwa RDD za pomocą ZipwithuniqueID ()
Drukuj (podmioty1.zipwithuniqueid ().zbierać())
Wyjście:
Rzeczywiste dane w podmiotach1: [„Python”, „Java”, „Python”, „Java”, „Python”, „Java”]
[(„Python”, 0), („java”, 2), („Python”, 4), („java”, 1), („python”, 3), („java”, 5)]
Z powyższego wyjścia widać, że różne wartości są zapinane na zamek faktyczne wartości.
Wniosek
W tym samouczku widzieliśmy, jak zamykać RDD z pewnymi wartościami. Zip () służy do zipu dwóch par RDD. ZIPWITHINDEX () służy do zamykania się z wartościami i zipwithuniqueid () jest używany do zamykania wartości z wartościami opartymi na partycjach.