Pyspark blir med på par RDD

Pyspark blir med på par RDD
I Python er Pyspark en gnistmodul som brukes til å gi en lignende type prosessering som Spark.

RDD står for spenstige distribuerte datasett. Vi kan kalle RDD som en grunnleggende datastruktur i Apache Spark. Par RDD lagrer elementene/verdiene i form av nøkkelverdipar. Det vil lagre nøkkelverdiparet i formatet (nøkkel, verdi).

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 enimensjonal (lineære data) eller to dimensjonale data (rad-kolonne data).

I denne opplæringen vil vi se forskjellige sammenføyninger utført på Pyspark Pair RDD. Alle blir med på jobb basert på nøklene i paret RDD.

Pyspark -par RDD - Bli med ()

Join () brukes til å utføre indre sammenføyning på par RDD.

Indre sammenføyning resulterer i RDD ved å velge bare de matchende radene fra to RDD.

Syntaks:

par_rdd1.Bli med (par_rdd2)

Hvor:

  1. par_rdd1 er den første RDD
  2. par_rdd2 ​​er den andre RDD.

Eksempel:

I dette eksemplet vil vi bruke Join () for å utføre indre sammenføyning på to RDD -er.

#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 ()
# Opprett 4 par -ratingpar
emner_rating1 = spark_app.SparkContext.parallellisere ([('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5)])
# Opprett 2 par -ratingpar
emner_rating2 = spark_app.SparkContext.parallellisere ([('Linux', 4), ('Java', 2)])
#perform indre sammenføyning
print (emner_rating1.Bli med (emner_rating2).samle inn())

Produksjon:

[('Linux', (1, 4))]

Her er emner_rating1 den første RDD -en som har følgende par: ('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5) og emner_rating2 er den første RDD som har følgende par: ('Linux', 4), ('Java', 2).

Så nøkkelen - Linux eksisterer i begge paret RDD. Derfor returneres verdiene med hensyn til nøkkelen.

Pyspark -par RDD - LeftouterJoin ()

LeftouterJoin () brukes til å utføre venstre sammen med paret RDD.

Venstre -sammenføyning resulterer i RDD ved å velge alle rader fra den første RDD og bare matchet rader fra den andre RDD med hensyn til radene i den første RDD.

Syntaks:

par_rdd1.Leftouterjoin (Pair_rdd2)

Hvor:

  1. par_rdd1 er den første RDD
  2. par_rdd2 ​​er den andre RDD.

Eksempel:

I dette eksemplet vil vi bruke venstreuterjoin () for å utføre en venstre sammenføyning på to RDD -er.

#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 ()
# Opprett 4 par -ratingpar
emner_rating1 = spark_app.SparkContext.parallellisere ([('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5)])
# Opprett 2 par -ratingpar
emner_rating2 = spark_app.SparkContext.parallellisere ([('Linux', 4), ('Java', 2)])
#perform venstre ytre bli med
print (emner_rating1.LeftouterJoin (emner_rating2).samle inn())

Produksjon:

[('Python', (5, Ingen)), ('Linux', (1, 4)), ('C#', (2, Ingen)), ('JavaScript', (4, Ingen))]

Her er emner_rating1 den første RDD -en som har følgende par: ('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5) og emner_rating2 er den første RDD som har følgende par: ('Linux', 4), ('Java', 2).

Det er ingen Python, C# og JavaScript -nøkler i den andre RDD, så verdiene er ingen i de andre RDD -verdiene. Men nøkkel-linux eksisterer i begge RDD-ene. Dermed ble verdiene 1,4 returnert.

Pyspark -par RDD - RightuterJoin ()

RightOuterJoin () brukes til å utføre riktig bli med på paret RDD.

Right Join resulterer i RDD ved å velge alle rader fra den andre RDD og bare matchet rader fra den første RDD med hensyn til radene i den andre RDD.

Syntaks:

par_rdd1.RIGHTOUTERJOIN (PAAR_RDD2)

Hvor:

  1. par_rdd1 er den første RDD
  2. par_rdd2 ​​er den andre RDD.

Eksempel:

I dette eksemplet vil vi bruke rightuterjoin () for å utføre en riktig sammenføyning på to RDD -er.

#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 ()
# Opprett 4 par -ratingpar
emner_rating1 = spark_app.SparkContext.parallellisere ([('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5)])
# Opprett 2 par -ratingpar
emner_rating2 = spark_app.SparkContext.parallellisere ([('Linux', 4), ('Java', 2)])
#Perform Right Outer Join
print (emner_rating1.RIGHTOUTERJOIN (ENTAGS_RATING2).samle inn())

Produksjon:

[('Java', (ingen, 2)), ('Linux', (1, 4))]

Her er emner_rating1 den første RDD -en som har følgende par: ('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5) og emner_rating2 er den første RDD som har følgende par: ('Linux', 4), ('Java', 2).

Det er ingen Java -nøkkel i den første RDD, så verdien er ingen i de første RDD -verdiene. Men nøkkel-linux eksisterer i begge RDD-ene. Dermed ble verdiene 1,4 returnert.

Pyspark -par RDD - Fulluterjoin ()

fullouterjoin () brukes til å utføre ytre sammenføyning på par RDD.

Full ytre sammenføyning resulterer i RDD ved å velge alle rader fra begge RDD -ene. Det plasserer ingen verdier for de uovertrufne radene i begge RDD -ene over radene.

Syntaks:

par_rdd1.fullouterjoin (par_rdd2)

Hvor:

  1. par_rdd1 er den første RDD
  2. par_rdd2 ​​er den andre RDD.

Eksempel:

I dette eksemplet vil vi bruke fulluterjoin () for å utføre en ytre sammenføyning på to RDD -er.

#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 ()
# Opprett 4 par -ratingpar
emner_rating1 = spark_app.SparkContext.parallellisere ([('Linux', 1), ('C#', 2), ('JavaScript', 4), ('Python', 5)])
# Opprett 2 par -ratingpar
emner_rating2 = spark_app.SparkContext.parallellisere ([('Linux', 4), ('Java', 2)])
#perform ytre sammenføyning
print (emner_rating1.fullouterjoin (emner_rating2).samle inn())

Produksjon:

[('Python', (5, ingen)), ('Java', (ingen, 2)), ('Linux', (1, 4)), ('C#', (2, ingen)), (( 'JavaScript', (4, ingen))]

Konklusjon

Med denne opplæringen ble vi kjent med at Pyspark RDD støtter 4 typer sammenføyninger. For å utføre indre sammenføyning, ganske enkelt kan vi bruke Join (), venstreuterjoin () brukes til å utføre venstre sammenføyning og høyreuterjoin () brukes til å utføre høyre sammen. For å utføre ytre sammenføyning brukes fulluterjoin ().