Pyspark - collect_list and collect_set

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

Vi vil diskutere Collect_List () og Collect_set () -funksjonene i Pyspark DataFrame.

Før vi flytter til disse funksjonene, vil vi lage Pyspark DataFrame

Eksempel:

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

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter1 = ['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': 2.79, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 9, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (Students1)
# Vis DataFrame
df.forestilling()

Produksjon:

Pyspark - collect_list ()

Collect_list () -metoden brukes til å få dataene fra Pyspark DataFrame -kolonnene og returnere verdiene i radformat. Det vil returnere alle verdiene sammen med duplikater. Men vi må importere denne metoden fra Pyspark.SQL.Funksjonsmodul.

Vi kan bruke denne metoden for å vise de innsamlede dataene i form av en rad.

Syntaks:

Dataramme.Velg (“Collect_List (“ Column ”))

hvor:

  1. DataFrame er inngangen Pyspark DataFrame
  2. Kolonnen er kolonnenavnet der Collect_list () brukes

Eksempel 1:

I dette eksemplet samler vi inn data fra adressekolonnen og viser verdiene med Collect () -metoden.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import collect_list -funksjonen
Fra Pyspark.SQL.Funksjoner importerer samle_liste
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter1 = ['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 (Students1)
# samle_liste på adresse
df.Velg (Collect_List ("Adresse")).samle inn()

Produksjon:

[ROW (Collect_List (adresse) = ['Guntur', 'Hyd', 'Patna', 'Hyd', 'Hyd'])]

Eksempel 2:

I dette eksemplet samler vi inn data fra høyde- og vektkolonner og viser verdiene med Collect () -metoden.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import collect_list -funksjonen
Fra Pyspark.SQL.Funksjoner importerer samle_liste
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter1 = ['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 (Students1)
# samle_liste på høyde- og vektkolonner
df.Velg (Collect_List ("Høyde"), Collect_List ("Vekt")).samle inn()

Produksjon:

[Rad (samle_list (høyde) = [5.79, 3.79, 2.79, 3.69, 5.59], Collect_list (vekt) = [67, 34, 17, 28, 54])]]

Pyspark - collect_set ()

Collect_set () -metoden brukes til å få dataene fra PySpark DataFrame -kolonnene og returnere verdiene i radformat. Det vil returnere alle verdier uten duplikater.

Vi kan bruke denne metoden for å vise de innsamlede dataene i form av en rad. Men vi må importere denne metoden fra Pyspark.SQL.Funksjonsmodul.

Syntaks:

Dataramme.Velg (“Collect_set (“ Column ”))

hvor:

  1. DataFrame er inngangen Pyspark DataFrame
  2. Kolonnen er kolonnenavnet der Collect_list () brukes

Eksempel 1:

I dette eksemplet samler vi inn data fra adressekolonnen og viser verdiene med Collect () -metoden.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import Collect_set -funksjonen
Fra Pyspark.SQL.Funksjoner importerer samle_set
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter1 = ['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 (Students1)
# samle_set på adresse
df.Velg (Collect_set ("Adresse")).samle inn()

Produksjon:

[Rad (collect_set (adresse) = ['hyd', 'guntur', 'patna'])]

Eksempel 2:

I dette eksemplet samler vi inn data fra høyde- og vektkolonner og viser verdiene med Collect () -metoden.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import Collect_set -funksjonen
Fra Pyspark.SQL.Funksjoner importerer samle_set
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter1 = ['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 (Students1)
# samle_set på høyde- og vektkolonner
df.Velg (Collect_set ("Høyde"), Collect_List ("Vekt")).samle inn()

Produksjon:

[Rad (samle_set (høyde) = [5.59, 3.69, 2.79, 5.79, 3.79], Collect_list (vekt) = [67, 34, 17, 28, 54])]]

Konklusjon

Vi har sett at Collect_list () og Collect_set () metoder brukes for å få dataene fra en kolonne i Pyspark DataFrame. Fra disse metodene observerte vi at Collect_set () ikke tillater duplikater, men Collect_list () tillater dupliserte verdier.