RDD står for spenstige distribuerte datasett. Vi kan kalle RDD som en grunnleggende datastruktur i Apache Spark.
Vi må importere RDD fra Pyspark.RDD -modul.
I Pyspark for å lage en RDD, kan vi bruke parallelliseringsmetoden ().
Syntaks:
Spark_app.SparkContext.parallellisere (data)
Hvor data kan være en endimensjonal (lineære data) eller todimensjonale data (rad-kolonne data).
I denne Pyspark -artikkelen vil vi diskutere om TakeWerdered () og Takeample () -funksjoner.
Pyspark Take Ordered ()
Pyspark Take Ordered () -funksjon brukes til å returnere en ny RDD i en ordre fra eksisterende RDD.
Det tar to parametere.
Syntaks:
Take Ordered (N, Key)
Parametere:
- n brukes til å returnere antall elementer i en ordre i den nye RDD.
- Nøkkel er en valgfri parameter som tar en anonym funksjon for å få elementene i stigende rekkefølge eller synkende rekkefølge.
For stigende rekkefølge kan funksjonen være - nøkkel = lambda element: element
For synkende rekkefølge kan funksjonen være - nøkkel = lambda element: -element
Det tar minus (-) tegn for å ta elementer i synkende rekkefølge.
Hvis det ikke er spesifisert, vil elementene i den nye RDD være i stigende rekkefølge.
Eksempel 1:
I dette eksemplet oppretter vi en RDD med 20 elementer og bruker takten () -funksjonen for å få de 10 første elementene. De første 12 elementene separat i stigende rekkefølge ved bruk av nøkkelparameter.
#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
# Importer RDD fra Pyspark.RDD
Fra Pyspark.RDD Import RDD
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentmerker data med 20 elementer
student_marks = spark_app.SparkContext.Parallelliser ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#display -data i RDD
Print ("Faktiske data i RDD:", Student_marks.Kart (Lambda Element: Element).samle inn())
#Get 10 elementer fra RDD i stigende rekkefølge
trykk ("10 elementer fra RDD i en stigende rekkefølge med nøkkel som parameter:", Student_marks.Take Ordered (10, Key = Lambda Element: Element))
#Get 12 elementer fra RDD i stigende rekkefølge
trykk ("12 elementer fra RDD i en stigende rekkefølge med nøkkel som parameter:", Student_marks.Take Ordered (12, Key = Lambda Element: Element))
Produksjon:
Faktiske data i RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementer fra RDD i en stigende rekkefølge med nøkkel som parameter: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementer fra RDD i en stigende rekkefølge med nøkkel som parameter: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]
Du kan se at nye RDD -er blir returnert med elementer i stigende rekkefølge.
Eksempel 2:
I dette eksemplet oppretter vi en RDD med 20 elementer og bruker takten () -funksjonen for å få de 10 første elementene. De første 12 elementene er atskilt i stigende rekkefølge uten nøkkelparameter.
#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
# Importer RDD fra Pyspark.RDD
Fra Pyspark.RDD Import RDD
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentmerker data med 20 elementer
student_marks = spark_app.SparkContext.Parallelliser ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#display -data i RDD
Print ("Faktiske data i RDD:", Student_marks.Kart (Lambda Element: Element).samle inn())
#Get 10 elementer fra RDD i stigende rekkefølge
trykk ("10 elementer fra RDD i en stigende rekkefølge:", Student_marks.Take Ordered (10))
#Get 12 elementer fra RDD i stigende rekkefølge
trykk ("12 elementer fra RDD i en stigende rekkefølge:", Student_marks.Take Ordered (12)))
Produksjon:
Faktiske data i RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementer fra RDD i stigende rekkefølge: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementer fra RDD i stigende rekkefølge: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]
Du kan se at nye RDD -er blir returnert med elementer i stigende rekkefølge fremdeles uten nøkkelparameter.
Eksempel 3:
I dette eksemplet oppretter vi en RDD med 20 elementer og bruker takten () -funksjonen for å få det første 10 elementet. De første 12 elementene er atskilt i synkende rekkefølge.
#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
# Importer RDD fra Pyspark.RDD
Fra Pyspark.RDD Import RDD
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentmerker data med 20 elementer
student_marks = spark_app.SparkContext.Parallelliser ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#display -data i RDD
Print ("Faktiske data i RDD:", Student_marks.Kart (Lambda Element: Element).samle inn())
#Get 10 elementer fra RDD i synkende rekkefølge
trykk ("10 elementer fra RDD i en synkende rekkefølge:", Student_marks.Take Ordered (10, Key = Lambda Element: -element))
#Get 12 elementer fra RDD i synkende rekkefølge
trykk ("12 elementer fra RDD i en synkende rekkefølge:", Student_marks.Take Ordered (12, Key = Lambda Element: -element))
Produksjon:
Faktiske data i RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementer fra RDD i en synkende rekkefølge: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56]
12 elementer fra RDD i en synkende rekkefølge: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56, 54, 45]
Du kan se at nye RDD -er blir returnert med elementer i synkende rekkefølge. For denne saken må du spesifisere nøkkelparameteren.
Pyspark takeample ()
Pyspark Takeample () -funksjon brukes til å returnere en ny RDD med tilfeldige verdier fra en eksisterende RDD. Det tar to parametere.
Syntaks:
Takesample (erstatt, n)
Parametere:
- erstatte tar boolske verdier. Hvis det er satt til sant, er de tilfeldige verdiene som kommer tilbake til New RDD unike (de blir ikke gjentatt/erstattet igjen). Hvis det er satt til falsk, kan de tilfeldige verdiene som kommer tilbake til ny RDD gjentas (de kan gjentas/erstattes igjen)
- n brukes til å returnere antall tilfeldige elementer i en ny RDD.
Eksempel 1:
I dette eksemplet vil vi lage en RDD med 20 elementer og returnere 10 elementer. 12 elementer skilles uten erstatning.
#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
# Importer RDD fra Pyspark.RDD
Fra Pyspark.RDD Import RDD
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentmerker data med 20 elementer
student_marks = spark_app.SparkContext.Parallelliser ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#display -data i RDD
Print ("Faktiske data i RDD:", Student_marks.Kart (Lambda Element: Element).samle inn())
#Get 10 elementer fra RDD uten erstatning
trykk ("10 elementer fra RDD uten erstatning:", Student_marks.Takesample (falsk, 10))
#Get 12 elementer fra RDD uten erstatning
trykk ("12 elementer fra RDD uten erstatning:", Student_marks.Takeample (False, 12)))
Produksjon:
Faktiske data i RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementer fra RDD uten erstatning: [89, 23, 78, 56, 43, 100, 89, 78, 76, 21]
12 elementer fra RDD uten erstatning: [89, 23, 43, 54, 34, 45, 78, 56, 22, 56, 34, 34]
Vi kan observere at tilfeldige verdier ikke erstattes i den nye RDD.
Eksempel 2:
I dette eksemplet vil vi lage en RDD med 20 elementer og returnere 10 elementer. 12 elementer er atskilt med erstatning.
#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
# Importer RDD fra Pyspark.RDD
Fra Pyspark.RDD Import RDD
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentmerker data med 20 elementer
student_marks = spark_app.SparkContext.Parallelliser ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#display -data i RDD
Print ("Faktiske data i RDD:", Student_marks.Kart (Lambda Element: Element).samle inn())
#Get 10 elementer fra RDD med erstatning
trykk ("10 elementer fra RDD med erstatning:", Student_marks.Takeample (True, 10)))
#Get 12 elementer fra RDD med erstatning
trykk ("12 elementer fra RDD med erstatning:", Student_marks.Takesample (True, 12)))
Produksjon:
Faktiske data i RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementer fra RDD med erstatning: [90, 34, 78, 34, 34, 89, 23, 22, 76, 21]
12 elementer fra RDD med erstatning: [43, 78, 78, 78, 78, 89, 21, 100, 89, 78, 34, 22]
Vi kan observere at tilfeldige verdier erstattes i begge de nye RDD -ene siden vi setter parameteren til True.
Konklusjon
I denne pyspark -opplæringen så vi hvordan vi bruker Take Ordered () & Takeample () -funksjoner på RDD. Begge brukes til å returnere den nye RDD fra den eksisterende RDD.
Take Ordered () returnerer den nye RDD fra en eksisterende RDD med elementer i en sorteringsrekkefølge. Det er mulig å få de sorterte dataene i synkende rekkefølge ved å bruke nøkkelparameteren gjennom lambda -funksjonen.
Takeample () returnerer den nye RDD fra en eksisterende RDD med noen elementer tilfeldig. Det er mulig å gjenta de tilfeldig genererte verdiene i den nye RDD igjen ved hjelp av erstatningsparameteren.