Pyspark RDD - kryss, kartesisk

Pyspark RDD - kryss, kartesisk
I Python er Pyspark en Spark -modul som brukes til å gi en lignende type prosessering som Spark ved hjelp av DataFrame.

RDD står for spenstige distribuerte datasett. Vi kan kalle RDD en grunnleggende datastruktur i Apache Spark. Den vil lagre dataene i form av rader og kolonner som ligner på en dataaframe eller lineært.

Vi må importere RDD fra Pyspark.RDD -modul.

Så i Pyspark for å lage data eller en DataFrame, må vi bruke parallelliseringsmetoden () metoden.

Syntaks:

Spark_app.SparkContext.parallellisere (data)

Hvor,

Data kan være en endimensjonal (lineære data) eller to dimensjonale (rad-kolonne data).

I denne opplæringen vil vi lære om Pyspark RDD -trekk () og distinkte () operasjoner.

Pyspark RDD - kryss ()

kryss() I RDD vil returnere den nye RDD som inkluderer elementene som er til stede i den første RDD -en, så vel som den andre RDD. Ganske enkelt, det returnerer bare vanlige elementer fra begge RDD -ene.

Så vi trenger to RDD -er for å utføre denne operasjonen.

Syntaks:

RDD_DATA1.kryss (RDD_DATA2)

Hvor,

  1. RDD_DATA1 er den første RDD.
  2. RDD_DATA2 er den andre RDD.

Eksempel 1:

I dette eksemplet vil vi opprette to RDD -er med numeriske data - Fags_1 og emner_2 og utføre kryss () 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 5 - Fagemerker
emner_1 = spark_app.SparkContext.parallelliser ([100,34,56,54,45])
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
# Opprett 5 - Fagemerker
emner_2 = spark_app.SparkContext.parallelliser ([90,89,34,56,45])
#display subjets_2 rdd
print ("emner_2 rdd:", emner_2.samle inn())
#Perform kryss () Operasjon på over to RDD -er
print ("kryss () operasjon på emner_1 og emner_2:", emner_1.kryss (emner_2).samle inn())

Produksjon:

Fags_1 RDD: [100, 34, 56, 54, 45]
Fags_2 RDD: [90, 89, 34, 56, 45]
kryss () Operasjon på emner_1 og emner_2: [56, 45, 34]

Fra utgangen kan vi se at det er 5 elementer i begge RDD -ene.

Vi utfører et kryss på emner_1 og emner_2. Her er 56,45 og 34 til stede i emner_1 og emner_2. Så de ble returnert.

Eksempel 2:

I dette eksemplet vil vi lage to RDD med strenger - emner_1 og emner_2 og utføre kryss () 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 3 - Fagnavn
emner_1 = spark_app.SparkContext.Parallellize (["Linux", "Bash", "JavaScript"])
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
# Opprett 2 - Fagnavn
emner_2 = spark_app.SparkContext.parallellisere (["Linux", "Java"])
#display subjets_2 rdd
print ("emner_2 rdd:", emner_2.samle inn())
#Perform kryss () Operasjon på over to RDD -er
print ("kryss () operasjon på emner_1 og emner_2:", emner_1.kryss (emner_2).samle inn())

Produksjon:

emner_1 rdd: ['Linux', 'bash', 'JavaScript']
emner_2 rdd: ['linux', 'java']
kryss () Operasjon på emner_1 og emner_2: ['Linux']

Fra utgangen kan vi se at bare 'Linux' er vanlig i begge RDD -ene. Så det blir returnert.

Pyspark RDD - Cartesian ()

Cartesian () I RDD vil returnere den nye RDD som inkluderer alle elementene fra begge RDD -ene. Den returnerer et kartesisk produkt slik at hvert element i den første RDD er kombinert med alle elementer fra den andre RDD i form av et par.

Så vi trenger to RDD -er for å utføre denne operasjonen.

Syntaks:

RDD_DATA1.Cartesian (RDD_DATA2)

Hvor,

  1. RDD_DATA1 er den første RDD.
  2. RDD_DATA2 er den andre RDD.

Eksempel 1:

I dette eksemplet vil vi opprette to RDD -er med numeriske data - Emner_1 og emner_2 og utføre Cartesian () 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 2 - Fagemerker
emner_1 = spark_app.SparkContext.parallellisere ([100,34])
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
# Opprett 2 - Fagemerker
emner_2 = spark_app.SparkContext.parallellisere ([56,45])
#display subjets_2 rdd
print ("emner_2 rdd:", emner_2.samle inn())
#Perform Cartesian () Operasjon på over to RDD -er
Print ("Cartesian () Operasjon på emner_1 og emner_2:", emner_1.Cartesian (emner_2).samle inn())

Produksjon:

emner_1 rdd: [100, 34]
emner_2 rdd: [56, 45]
Cartesian () Operasjon på emner_1 og emner_2: [(100, 56), (100, 45), (34, 56), (34, 45)]

Fra utgangen kan vi se at det er to elementer i begge RDD -ene.

Vi utfører en kartesisk på emner_1 og emner_2. Elementer fra emner_1 er sammenkoblet med hvert element i emner_2.

Eksempel 2:

I dette eksemplet vil vi lage to RDD med strenger - emner_1 og emner_2 og utføre kartesisk () 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 3 - Fagnavn
emner_1 = spark_app.SparkContext.Parallellize (["Linux", "Bash", "JavaScript"])
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
# Opprett 2 - Fagnavn
emner_2 = spark_app.SparkContext.parallellisere (["Linux", "Java"])
#display subjets_2 rdd
print ("emner_2 rdd:", emner_2.samle inn())
#Perform Cartesian () Operasjon på over to RDD -er
Print ("Cartesian () Operasjon på emner_1 og emner_2:", emner_1.Cartesian (emner_2).samle inn())

Produksjon:

emner_1 rdd: ['Linux', 'bash', 'JavaScript']
emner_2 rdd: ['linux', 'java']
Cartesian () Operasjon på emner_1 og emner_2: [('Linux', 'Linux'), ('Linux', 'Java'), ('Bash', 'Linux'), ('JavaScript', 'Linux'), ('Bash', 'Java'), ('JavaScript', 'Java')]

Fra utgangen kan vi se at det er 3 elementer i de første RDD- og 2 elementene i den andre RDD.

Vi utfører en kartesisk på emner_1 og emner_2. Her er elementer fra emner_1 sammenkoblet med hvert eneste element i Subects_2.

Konklusjon

I denne Pyspark RDD -opplæringen så vi hvordan vi skulle utføre kryss () og Cartesian (). Vi trenger to RDD -er for å utføre disse operasjonene.kryss () returnerer bare vanlige elementer fra både RDD og Cartesian () returnerer et kartesisk produkt slik at hvert element i den første RDD er kombinert med alle elementer fra den andre RDD i form av et par.