Pyspark RDD - Trekk, distinkt

Pyspark RDD - Trekk, distinkt
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 som en grunnleggende datastruktur i Apache Spark. Den vil lagre dataene i form av rader og kolonner som en dataaframe.

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

I Pyspark, for å lage data eller en dataaFrame, må vi bruke parallelliseringsmetoden () metoden.

Syntaks:

Spark_app.SparkContext.parallellisere (data)

Hvor data kan være en enimensjonal (lineære data) eller todimensjonale data (rad-kolonne data).

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

Pyspark RDD - Trekk fra ()

trekke fra() I RDD ligner på Set Difference Operation som vil returnere den nye RDD som inkluderer elementene som er til stede i den første RDD -en, men ikke til stede i den andre RDD -en.

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

Syntaks:

RDD_DATA1.Trekk (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 med numeriske data - emner_1 og emner_2 og utføre trekk () 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 Trekker () Operasjon på over to RDD -er
print ("trekke () operasjon på emner_1 med emner_2:", emner_1.trekke fra (emner_2).samle inn())
#Perform Trekker () Operasjon på over to RDD -er
print ("trekke () operasjon på emner_2 med emner_1:", emner_2.trekke fra (emner_1).samle inn())

Produksjon:

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

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

I den første operasjonen utfører vi å trekke fra emner_1 med emner_2. Her er 100 og 54 til stede i emner_1, men ikke i emner_2. Så de ble returnert.

I den andre operasjonen utfører vi subtraksjon på emner_2 med emner_1. Her er 89 og 90 til stede i emner_2, men ikke i emner_1. Så de ble returnert.

Eksempel 2:

I dette eksemplet vil vi opprette to RDD med strengdata - emner_1 og emner_2 og utføre trekk () 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 Trekker () Operasjon på over to RDD -er
print ("trekke () operasjon på emner_1 med emner_2:", emner_1.trekke fra (emner_2).samle inn())
#Perform Trekker () Operasjon på over to RDD -er
print ("trekke () operasjon på emner_2 med emner_1:", emner_2.trekke fra (emner_1).samle inn())

Produksjon:

emner_1 rdd: ['Linux', 'bash', 'JavaScript']
emner_2 rdd: ['linux', 'java']
Trekk () Operasjon på emner_1 med emner_2: ['bash', 'JavaScript']
Trekk () Operasjon på emner_2 med emner_1: ['Java']

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

I den første operasjonen utfører vi subtraksjon på emner_1 med emner_2. Her er 'Bash' og 'JavaScript' til stede i emner_1, men ikke i emner_2. Så de ble returnert.

I den andre operasjonen utfører vi å trekke fra emner_2 med emner_1. Her er 'Java' til stede i emner_2, men ikke i emner_1. Så det blir returnert.

Pyspark RDD - distinkt ()

distinkt() I RDD brukes bare unike verdier fra RDD. Det brukes bare på en RDD

Så vi trenger en RDD for å utføre denne operasjonen. Det tar ingen parametere.

Syntaks:

RDD_DATA.distinkt()

Hvor, rdd_data1 er den første RDD.

Eksempel 1:

I dette eksemplet vil vi lage en RDD -emner_1 med 10 numeriske verdier og returnere unike verdier ved å bruke distinkt () -operasjon.

#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 10 - Fagemerker
emner_1 = spark_app.SparkContext.Parallelliser ([34,56,54,45,45,56,54,4,3,3]))
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
#Perform Distinct () Operation On Over RDD.
print ("distinkt () operasjon på emner_1:", emner_1.distinkt().samle inn())

Produksjon:

Personer_1 Rdd: [34, 56, 54, 45, 45, 56, 54, 4, 3, 3]
distinkt () Operasjon på emner_1: [34, 56, 54, 4, 45, 3]

Vi opprettet en RDD med 10 heltallverdier som inkluderer duplikater. Etter at vi brukte distinkt () for bare å returnere unike verdier.

Eksempel 2:

I dette eksemplet vil vi opprette en RDD -emner_1 med 5 strengverdier og returnere unike verdier ved å bruke distinkt () -operasjon.

#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 - fag
emner_1 = spark_app.SparkContext.Parallelize (['Java', 'Java', 'Python', 'JavaScript', 'JavaScript'])
#display subjets_1 rdd
print ("emner_1 rdd:", emner_1.samle inn())
#Perform Distinct () Operation On Over RDD.
print ("distinkt () operasjon på emner_1:", emner_1.distinkt().samle inn())

Produksjon:

emner_1 rdd: ['Java', 'Java', 'Python', 'JavaScript', 'JavaScript']
distinkt () Operasjon på emner_1: ['Java', 'Python', 'JavaScript']

Vi opprettet en RDD med 5 strengverdier som inkluderer duplikater. Etter det brukte vi distinkt () for bare å returnere unike verdier. De returnerte unike verdiene er - Java, Python og JavaScript.

Konklusjon

I denne Pyspark RDD -opplæringen diskuterte vi Submract () og Distinct () Methods.trekk () som brukt på to RDD -er. Det brukes til å returnere elementene som er til stede i den første RDD -en, men ikke til stede i sekundet. RDD.Distinct () brukes på enkelt RDD som brukes til å returnere unike elementer fra RDD.