Pyspark -overordnet og take -prøve

Pyspark -overordnet og take -prøve
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:

  1. n brukes til å returnere antall elementer i en ordre i den nye RDD.
  2. 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:

  1. 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)
  2. 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.