Pyspark - WithColumn -metoden

Pyspark - WithColumn -metoden
I Python er Pyspark en Spark -modul som brukes til å gi en lignende type prosessering som Spark ved hjelp av DataFrame.

WithColumn () i Pyspark brukes til å utføre operasjonene på Pyspark DataFrame -kolonnene. Operasjonene inkluderer

  1. Endre datatypen på kolonnen
  2. Endre verdiene i kolonnen
  3. Legg til en ny kolonne fra den eksisterende kolonnen

Før vi flytter til metodene, vil vi lage Pyspark DataFrame

Eksempel:

Her vil vi lage en Pyspark DataFrame med 5 rader og 6 kolonner.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
df.forestilling()

Produksjon:

Endre datatypen på kolonnen

Vi kan endre datatypen til en bestemt kolonne ved hjelp av column () -metoden.

Syntaks:

Dataramme.WithColumn ("Column_name", Col ("Column_name").Cast ("Datatype"))

Parametere:

1. kolonne_navn er kolonnen hvis datatype endres

2. Col () -funksjonen brukes til å få kolonnenavnet

3. Cast () brukes til å endre kolonnedatatypen fra en type til en annen, ved å godta datatype -navnet som en parameter. Datatypene inkluderer streng, heltall, dobbelt.

Eksempel:

I dette eksemplet er høyden av float -datatype. Vi kan endre det til Heltall ved å bruke metoden ovenfor og vise skjemaet ved hjelp av Printschema () -metoden og DataFrame ved hjelp av Collect () -metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#convert float type til heltall type høydekolonne
df = df.WithColumn ("Høyde", Col ("Høyde").rollebesetning ("Heltall"))
#Display Modified DataFrame
trykk (df.samle inn())
#llets viser skjemaet
df.Printschema ()

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5, navn = 'sravan', rollno = '001', vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3, name = 'ojaswi', rollno = '002', vekt = 34), rad (adresse = 'patna', alder = 7, høyde = 2, navn = 'gnanesh chowdary', rollno = '003', vekt = 17) , Rad (adresse = 'hyd', alder = 9, høyde = 3, navn = 'rohith', rollno = '004', vekt = 28), rad (adresse = 'hyd', alder = 37, høyde = 5, name = 'sridevi', rollno = '005', vekt = 54)]
rot
|- Adresse: streng (nullable = true)
|- Alder: Lang (Nullable = True)
|- Høyde: Heltall (Nullable = True)
|- Navn: String (Nullable = True)
|- RollNo: String (Nullable = True)
|- Vekt: Lang (Nullable = True)

Endre verdiene i kolonnen

Vi kan endre verdiene til en bestemt kolonne ved å bruke column () -metoden.

Syntaks:

Dataramme.WithColumn ("Column_name", Col ("Column_name"))

Parametere:

1. kolonne_navn er kolonnen hvis datatype endres

2. Col () -funksjonen brukes til å endre verdiene i kolonnenavnet

Eksempel:

I dette eksemplet vil vi trekke fra hver verdi i vektkolonnen med 10.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Decrease hver verdi i vektkolonne med 10
df = df.WithColumn ("Vekt", Col ("Vekt")-10)
#Display Modified DataFrame
trykk (df.samle inn())
#llets viser skjemaet
df.Printschema ()

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', rollno = '001', vekt = 57), rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'ojaswi', rollno = '002', vekt = 24), rad (adresse = 'patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 7), rad (adresse = 'Hyd', alder = 9, høyde = 3.69, navn = 'Rohith', rollno = '004', vekt = 18), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'sridevi', rollno = '005', vekt = 44)]
rot
|- Adresse: streng (nullable = true)
|- Alder: Lang (Nullable = True)
|- Høyde: dobbelt (nullable = true)
|- Navn: String (Nullable = True)
|- RollNo: String (Nullable = True)
|- Vekt: Lang (Nullable = True)

Legg til en ny kolonne fra den eksisterende kolonnen

Vi kan legge til en ny kolonne fra en eksisterende kolonne ved hjelp av withColumn () -metoden.

Syntaks:

Dataramme.WithColumn ("New_Column", Col ("Column_name"))

Parametere:

1. new_column er kolonnen

2. Col () -funksjonen brukes til å legge til kolonneverdiene til New_Column

Eksempel:

Dette eksemplet vil opprette en ny kolonne - "Power" og legge til verdier i denne kolonnen, og multiplisere hver verdi i vektkolonnen med 10.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Add -kolonnen som heter Power
#fra vektkolonnen multiplisert med 2
df = df.WithColumn ("Power", Col ("Vekt")* 2)
#Display Modified DataFrame
trykk (df.samle inn())
#llets viser skjemaet
df.Printschema ()

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', RollNo = '001', vekt = 67, kraft = 134), rad (adresse = 'Hyd', alder = 16, høyde = 3.79, navn = 'Ojaswi', rollno = '002', vekt = 34, strøm = 68), rad (adresse = 'Patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 17, kraft = 34), rad (adresse = 'hyd', alder = 9, høyde = 3.69, navn = 'Rohith', rollno = '004', vekt = 28, kraft = 56), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54, kraft = 108)]
rot
|- Adresse: streng (nullable = true)
|- Alder: Lang (Nullable = True)
|- Høyde: dobbelt (nullable = true)
|- Navn: String (Nullable = True)
|- RollNo: String (Nullable = True)
|- Vekt: Lang (Nullable = True)
|- Power: Long (Nullable = True)

Konklusjon:

Denne artikkelen diskuterte hvordan du endrer datatypene, modifiserer verdiene i de eksisterende kolonnene og legg til en ny kolonne ved hjelp av WithColumn () -metoden.