Funções Pyspark Shiftleft e Shiftright

Funções Pyspark Shiftleft e Shiftright
Operações de turno significam mudar os bits em relação ao número total de posições fornecidas em um número binário.

Então, internamente, o número é convertido em formato binário e bits são deslocados. Existem duas possibilidades. Os bits mudarão da esquerda para a direita ou direita para a esquerda.

A mudança de pedaços da esquerda para a direita é chamada de turno esquerdo, e a mudança de bits da direita para a esquerda é conhecida como o turno direito.

Neste tutorial de Pyspark, veremos como fazer a mudança à esquerda e a mudança direita nos valores em uma coluna específica de um quadro de dados.

função shiftleft ()

Está disponível no Pyspark.SQL.funções módulo. A função shiftleft () muda os bits para a esquerda.

É avaliado na fórmula, valor*(2^turno).

Por exemplo:

Vamos mudar o valor 12 por 3 bits.

Solução:

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

Então, 12 após a mudança de 3 picadas é 96.

Isso pode ser usado dentro do método select (), pois podemos exibir os valores deslocados em uma coluna usando o método select () no Pyspark.

Sintaxe
dataframe_obj.Selecione (dataframe_obj.M1, Shiftleft (DataFrame_OBJ.coluna, n))

Parâmetros:
A função shiftleft () leva dois parâmetros.

  1. O primeiro parâmetro é o nome da coluna.
  2. O segundo parâmetro é o número inteiro que representa o número total de bits a serem transferidos para a esquerda.

Exemplo 1
Então, criaremos um pyspark Dataframe com 5 linhas e 5 colunas: ['sujeito_id', 'nome', 'idade', 'm1', 'm2'].
E mude 2 bits nas colunas M1 e M2 para a esquerda.

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
estudantes = [(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.CreatedAtAframe (estudantes, ['sujeito_id', 'nome', 'idade', 'm1', 'm2']))
dataframe_obj.mostrar()
# Importe a função Shiftleft do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam shiftleft
#Perform SHIFLEFT Operação em todos os valores na coluna M1 por 2 posições
coluna # e m2 por 2 posições
dataframe_obj.Selecione (dataframe_obj.M1, Shiftleft (DataFrame_OBJ.m1,2), dataframe_obj.m2, shiftleft (dataframe_obj.m2,2)).mostrar()

Saída:

Explicação

Na coluna M1:

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

Na coluna M2:

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

Exemplo 2
Então, criaremos um pyspark Dataframe com 5 linhas e 5 colunas: ['sujeito_id', 'nome', 'idade', 'm1', 'm2'].
E mude 4 bits nas colunas M1 e M2 para a esquerda.

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
estudantes = [(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.CreatedAtAframe (estudantes, ['sujeito_id', 'nome', 'idade', 'm1', 'm2']))
dataframe_obj.mostrar()
# Importe a função Shiftleft do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam shiftleft
#Perform SHIFLEFT Operação em todos os valores na coluna M1 por 4 posições
coluna # e m2 por 4 posições
dataframe_obj.Selecione (dataframe_obj.M1, Shiftleft (DataFrame_OBJ.m1,4), dataframe_obj.m2, shiftleft (dataframe_obj.m2,4)).mostrar()

Saída:

Explicação

Na coluna M1:

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

Na coluna M2:

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

função shiftright ()

Está disponível no Pyspark.SQL.funções módulo. A função Shiftright () muda os bits para a direita.

É avaliado na fórmula, Valor/(2^turno)

Por exemplo: vamos mudar o valor 12 por 3 bits.

Solução:

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

Assim, 12 depois de mudar 3 mordidas da direita para a esquerda é 1.

Isso pode ser usado dentro do método select (). Porque podemos exibir os valores deslocados em uma coluna usando o método select () em Pyspark.

Sintaxe
dataframe_obj.Selecione (dataframe_obj.M1, Shiftright (DataFrame_OBJ.coluna, n))

Parâmetros:
Shiftright () leva dois parâmetros.

  1. O primeiro parâmetro é o nome da coluna.
  2. O segundo parâmetro é o número inteiro que representa o número total de bits a serem transferidos.

Exemplo 1
Então, criaremos um pyspark Dataframe com 5 linhas e 5 colunas: ['sujeito_id', 'nome', 'idade', 'm1', 'm2'].
E mude 2 bits nas colunas M1 e M2 para a direita.

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
estudantes = [(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.CreatedAtAframe (estudantes, ['sujeito_id', 'nome', 'idade', 'm1', 'm2']))
dataframe_obj.mostrar()
# Importe a função Shiftrright do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam Shiftrright
#Perform SHIFTRIGHT OPERAÇÃO em todos os valores na coluna M1 por 2 posições
coluna # e m2 por 2 posições
dataframe_obj.Selecione (dataframe_obj.M1, Shiftright (DataFrame_OBJ.m1,2), dataframe_obj.M2, Shiftright (DataFrame_OBJ.m2,2)).mostrar()

Saída:

Explicação

Na coluna M1:

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

Na coluna M2:

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

Exemplo 2
Então, criaremos um pyspark Dataframe com 5 linhas e 5 colunas: ['sujeito_id', 'nome', 'idade', 'm1', 'm2'].
E mude 4 bits nas colunas M1 e M2 para a direita.

Importar Pyspark
de Pyspark.SQL Import SparkSession
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
estudantes = [(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.CreatedAtAframe (estudantes, ['sujeito_id', 'nome', 'idade', 'm1', 'm2']))
dataframe_obj.mostrar()
# Importe a função Shiftrright do módulo - Pyspark.SQL.funções
de Pyspark.SQL.funções importam Shiftrright
#Perform SHIFTRIGHT OPERAÇÃO em todos os valores na coluna M1 por 4 posições
coluna # e m2 por 4 posições
dataframe_obj.Selecione (dataframe_obj.M1, Shiftright (DataFrame_OBJ.m1,4), dataframe_obj.M2, Shiftright (DataFrame_OBJ.m2,4)).mostrar()

Saída:

Explicação

Na coluna M1:

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

Na coluna M2:

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

Conclusão

Neste tutorial Pyspark, vemos como mudar os bits no pyspark Dataframe. A função shiftleft () muda os bits para a esquerda. É avaliado na fórmula, valor*(mudança 2^). A função Shiftright () muda os bits para a direita. É avaliado na fórmula, valor/(2^turno). Certifique -se de ter que importar essas duas funções do Pyspark.SQL.Módulo de funções.