Pyspark Shiftleft og Shiftright -funksjoner

Pyspark Shiftleft og Shiftright -funksjoner
Skiftoperasjoner betyr å skifte bitene med hensyn til det totale antallet posisjoner gitt i et binært tall.

Så internt konverteres tallet til binært format, og biter blir forskjøvet. Det er to muligheter. Enten vil bitene skifte fra venstre til høyre eller høyre til venstre.

Å skifte biter fra venstre mot høyre kalles venstre skift, og skiftende biter fra høyre til venstre er kjent som høyre skift.

I denne pyspark -opplæringen vil vi se hvordan vi kan gjøre venstre skift og høyre skift på verdiene i en bestemt kolonne i en dataaframe.

skiftleft () -funksjon

Det er tilgjengelig i Pyspark.SQL.funksjoner modul. Funksjonen ShiftLeft () skifter bitene til venstre.

Den blir evaluert til formelen, verdi*(2^skift).

For eksempel:

La oss skifte verdien 12 med 3 biter.

Løsning:

12*(2*3)
=> 12*8
=> 96

Så 12 etter å ha skiftet 3 biter er 96.

Dette kan brukes inne i Select () -metoden siden vi kan vise de skiftede verdiene i en kolonne ved hjelp av Select () -metoden i Pyspark.

Syntaks
DataFrame_obj.Velg (DataFrame_OBJ.M1, SHIFTLEFT (DataFrame_OBJ.kolonne, n))

Parametere:
Funksjonen ShiftLeft () tar to parametere.

  1. Den første parameteren er kolonnenavnet.
  2. Den andre parameteren er heltallet som representerer det totale antallet biter som skal skiftes til venstre.

Eksempel 1
Så vi vil lage en Pyspark DataFrame med 5 rader og 5 kolonner: ['emne_id', 'name', 'Age', 'M1', 'M2'].
Og skift 2 biter i M1- og M2 -kolonnene til venstre.

Importer pyspark
Fra Pyspark.SQL Import SparkSession
Spark_app = SparkSession.bygger.AppName ('_').getorCreate ()
Studenter = [(4, 'Sravan', 23,78,90),
(4, 'Chandana', 23,67,89),
(46, 'Mounika', 22,54,67),
(4, 'Deepika', 21.100.100),
(46, 'Chandrika', 22,50,50),
]
DataFrame_OBJ = Spark_App.CreateTataFrame (Studenter, ['Subject_id', 'Name', 'Age', 'M1', 'M2'])
DataFrame_obj.forestilling()
# Importer skiftfunksjonen fra modulen - Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer skiftet
#perform shiftleft -operasjon på alle verdier i M1 -kolonnen med 2 posisjoner
# og M2 kolonne med 2 posisjoner
DataFrame_obj.Velg (DataFrame_OBJ.M1, SHIFTLEFT (DataFrame_OBJ.M1,2), DataFrame_OBJ.M2, SHIFTLEFT (DataFrame_OBJ.M2,2)).forestilling()

Produksjon:

Forklaring

I M1 -kolonnen:

78 => 78*(2^2) = 312
67 => 67*(2^2) = 268
54 => 54*(2^2) = 216
100 => 100*(2^2) = 400
50 => 50*(2^2) = 200

I M2 -kolonnen:

90 => 90*(2^2) = 360
89 => 89*(2^2) = 356
67 => 67*(2^2) = 268
100 => 100*(2^2) = 400
50 => 50*(2^2) = 200

Eksempel 2
Så vi vil lage en Pyspark DataFrame med 5 rader og 5 kolonner: ['emne_id', 'name', 'Age', 'M1', 'M2'].
Og skift 4 biter i M1- og M2 -kolonnene til venstre.

Importer pyspark
Fra Pyspark.SQL Import SparkSession
Spark_app = SparkSession.bygger.AppName ('_').getorCreate ()
Studenter = [(4, 'Sravan', 23,78,90),
(4, 'Chandana', 23,67,89),
(46, 'Mounika', 22,54,67),
(4, 'Deepika', 21.100.100),
(46, 'Chandrika', 22,50,50),
]
DataFrame_OBJ = Spark_App.CreateTataFrame (Studenter, ['Subject_id', 'Name', 'Age', 'M1', 'M2'])
DataFrame_obj.forestilling()
# Importer skiftfunksjonen fra modulen - Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer skiftet
#perform shiftleft -operasjon på alle verdier i M1 -kolonnen med 4 posisjoner
# og M2 kolonne med 4 posisjoner
DataFrame_obj.Velg (DataFrame_OBJ.M1, SHIFTLEFT (DataFrame_OBJ.M1,4), DataFrame_OBJ.M2, SHIFTLEFT (DataFrame_OBJ.M2,4)).forestilling()

Produksjon:

Forklaring

I M1 -kolonnen:

78 => 78*(2^4) = 1248
67 => 67*(2^4) = 1072
54 => 54*(2^4) = 864
100 => 100*(2^4) = 1600
50 => 50*(2^4) = 800

I M2 -kolonnen:

90 => 90*(2^4) = 1440
89 => 89*(2^4) = 1424
67 => 67*(2^4) = 1072
100 => 100*(2^4) = 1600
50 => 50*(2^4) = 800

Shiftright () -funksjon

Det er tilgjengelig i Pyspark.SQL.funksjoner modul. Shiftright () -funksjonen forskyver bitene til høyre.

Den blir evaluert til formelen, verdi/(2^skift)

For eksempel: La oss skifte verdien 12 med 3 biter.

Løsning:

12/(2*3)
=> 12/8
=> 1

Dermed er 12 etter å ha skiftet 3 biter fra høyre til venstre 1.

Dette kan brukes i Select () -metoden. Fordi vi kan vise de forskjøvede verdiene i en kolonne ved hjelp av Select () -metoden i Pyspark.

Syntaks
DataFrame_obj.Velg (DataFrame_OBJ.M1, Shiftright (DataFrame_OBJ.kolonne, n))

Parametere:
Shiftright () tar to parametere.

  1. Den første parameteren er kolonnenavnet.
  2. Den andre parameteren er heltallet som representerer det totale antallet biter som skal skiftes til høyre.

Eksempel 1
Så vi vil lage en Pyspark DataFrame med 5 rader og 5 kolonner: ['emne_id', 'name', 'Age', 'M1', 'M2'].
Og skift 2 biter i M1- og M2 -kolonnene til høyre.

Importer pyspark
Fra Pyspark.SQL Import SparkSession
Spark_app = SparkSession.bygger.AppName ('_').getorCreate ()
Studenter = [(4, 'Sravan', 23,78,90),
(4, 'Chandana', 23,67,89),
(46, 'Mounika', 22,54,67),
(4, 'Deepika', 21.100.100),
(46, 'Chandrika', 22,50,50),
]
DataFrame_OBJ = Spark_App.CreateTataFrame (Studenter, ['Subject_id', 'Name', 'Age', 'M1', 'M2'])
DataFrame_obj.forestilling()
# Importer den skiftende funksjonen fra modulen - Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer Shiftright
#Perform Shiftright -operasjon på alle verdier i M1 -kolonnen med 2 posisjoner
# og M2 kolonne med 2 posisjoner
DataFrame_obj.Velg (DataFrame_OBJ.M1, Shiftright (DataFrame_OBJ.M1,2), DataFrame_OBJ.M2, Shiftright (DataFrame_OBJ.M2,2)).forestilling()

Produksjon:

Forklaring

I M1 -kolonnen:

78 => 78/(2^2) = 19
67 => 67/(2^2) = 16
54 => 54/(2^2) = 13
100 => 100/(2^2) = 25
50 => 50/(2^2) = 12

I M2 -kolonne:

90 => 90/(2^2) = 22
89 => 89/(2^2) = 22
67 => 67/(2^2) = 16
100 => 100/(2^2) = 25
50 => 50/(2^2) = 12

Eksempel 2
Så vi vil lage en Pyspark DataFrame med 5 rader og 5 kolonner: ['emne_id', 'name', 'Age', 'M1', 'M2'].
Og skift 4 biter i M1- og M2 -kolonnene til høyre.

Importer pyspark
Fra Pyspark.SQL Import SparkSession
Spark_app = SparkSession.bygger.AppName ('_').getorCreate ()
Studenter = [(4, 'Sravan', 23,78,90),
(4, 'Chandana', 23,67,89),
(46, 'Mounika', 22,54,67),
(4, 'Deepika', 21.100.100),
(46, 'Chandrika', 22,50,50),
]
DataFrame_OBJ = Spark_App.CreateTataFrame (Studenter, ['Subject_id', 'Name', 'Age', 'M1', 'M2'])
DataFrame_obj.forestilling()
# Importer den skiftende funksjonen fra modulen - Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer Shiftright
#Perform Shiftright Operation på alle verdier i M1 -kolonnen med 4 posisjoner
# og M2 kolonne med 4 posisjoner
DataFrame_obj.Velg (DataFrame_OBJ.M1, Shiftright (DataFrame_OBJ.M1,4), DataFrame_OBJ.M2, Shiftright (DataFrame_OBJ.M2,4)).forestilling()

Produksjon:

Forklaring

I M1 -kolonnen:

78 => 78/(2^4) = 4
67 => 67/(2^4) = 4
54 => 54/(2^4) = 3
100 => 100/(2^4) = 6
50 => 50/(2^4) = 3

I M2 -kolonnen:

90 => 90/(2^4) = 5
89 => 89/(2^4) = 5
67 => 67/(2^4) = 4
100 => 100/(2^4) = 6
50 => 50/(2^4) = 3

Konklusjon

I denne pyspark -opplæringen ser vi hvordan vi kan skifte bitene i Pyspark DataFrame. Funksjonen ShiftLeft () skifter bitene til venstre. Den blir evaluert til formelen, verdien*(2^skift). Shiftright () -funksjonen forskyver bitene til høyre. Det blir evaluert til formelen, verdien/(2^skift). Forsikre deg om at du må importere disse to funksjonene fra pyspark.SQL.Funksjonsmodul.