Pyspark - Expr

Pyspark - Expr
No Python, Pyspark é um módulo Spark que fornece um tipo semelhante de processamento como o Spark usando o DataFrame. expr () em Pyspark refere -se a uma expressão SQL usada para extrair os dados executando algumas operações. expr () pode ser usado em muitos cenários.

Sintaxe real

EXPR (expressão SQL)

É preciso uma expressão SQL e executa algumas operações dentro da expressão.

Vamos discutir um por um. Antes disso, temos que criar um quadro de dados Pyspark para demonstração.”

Exemplo
Vamos criar um DataFrame com 5 linhas e 6 colunas e exibi -lo usando o método show ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = ['rollno': '001', 'nome': 'sravan', 'idade': 23, 'altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16, 'altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7, 'altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9, 'altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37, 'altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#display dataframe
df.mostrar()

Saída

Cenário 1: Concatenando uma ou mais colunas

Nesse cenário, concatizaremos uma ou mais colunas no Pyspark Dataframe usando expr ().

Ele usa o método withcolumn () para criar um novo nome de coluna para as colunas concatenato.

Sintaxe

quadro de dados.withcolumn ("column_name", expressão)

Parâmetros
São necessários dois parâmetros.

  1. Primeiro é o nome da coluna usado como o nome da coluna para as colunas concatenadas
  2. A expressão é criada usando expr () para concatenar colunas.

Aqui a expressão é:

EXPR ("Column1 || Separator || column2 || separador '||… || coluna n”)

Aqui, a coluna refere -se aos nomes de colunas para serem concatenados com um separador entre eles. Pode ser qualquer personagem, como personagens especiais.

Exemplo
Neste exemplo, estamos concatenando três colunas - Roll Nenhum nome e endereço separados por “ -“ e o nome da coluna para essas colunas concatenadas é - “Rollno com nome e endereço.”

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = ['rollno': '001', 'nome': 'sravan', 'idade': 23, 'altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16, 'altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7, 'altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9, 'altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37, 'altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#concate rollno, colunas de nome e endereço uaing expr ()
df.withcolumn ("rollno com nome e endereço", expr ("rollno || '-' || nome || '-' || endereço")))).mostrar()

Saída

Podemos ver que as colunas de rollno, nome e endereço são concatenadas com o “-“ separador.

Cenário 2: Adicione uma nova coluna baseada em condições

Aqui, usaremos expr () para especificar as condições dentro dele e, juntamente com o WithColumn (), para atribuir os valores das condições retornadas em uma nova coluna.

Podemos especificar as condições usando o caso quando

Estrutura

Caso quando
ENTÃO
Caso quando
ENTÃO
..
..
OUTRO
FIM

Dentro, quando temos que fornecer a condição e dentro, então temos que realizar uma ação.

Se a condição interna for verdadeira, o bloco será executado. Se falhar, vai para o bloco e terminar.

Esta declaração condicional é fornecida dentro de expr () como uma expressão SQL.

Sintaxe

quadro de dados.WithColumn ("Column", expr ("Caso quando condição1 então ação" +"quando condição2 então ação ... else Action end"))))

Onde,

  1. A coluna é a nova coluna criada e os valores são atribuídos com base nas condições nesta coluna
  2. expr () leva o caso quando a lógica condicional

Exemplo
Neste exemplo, estamos criando uma nova coluna - “altura atualizada” e atribuindo valores a ela com base nas seguintes condições aplicadas à coluna de altura.

Se a altura for maior que 5 - atribua 10 na coluna de altura atualizada sobre ela.

Se a altura for menor que 5 - atribua 5 na coluna de altura atualizada sobre ela.

Caso contrário, atualize a coluna de altura para 7 através das linhas.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = ['rollno': '001', 'nome': 'sravan', 'idade': 23, 'altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16, 'altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7, 'altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9, 'altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37, 'altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#In coluna de altura
#Se a altura é maior que 5 - atribua 10 na coluna de altura atualizada sobre ela
#Se a altura é menor que 5 - atribua 5 na coluna de altura atualizada sobre ela
#Otherwise a coluna de altura atualizada como 7 nas linhas
df.WithColumn ("Altura atualizada", expr ("Caso quando altura> 5 então 10" +"quando a altura <5 THEN 5 ELSE 7 END")).show()

Saída

Podemos ver que os valores são alocados na coluna "altura atualizada" com base nas condições.

Cenário 3: Execute operações aritméticas

É possível executar operações aritméticas como adição, subtração, multiplicação e divisão com colunas existentes usando expr ().

Aqui expr () pode ser usado com uma cláusula selecionada para exibir as colunas atualizadas.

Sintaxe

quadro de dados.Selecione (expr ("Expression"))

A expressão é usada para executar operações aritméticas que podem ser:

“Valor da Arithmetic_Operator da coluna como new_column”

Aqui, a coluna é o nome da coluna no qual podemos executar operações aritméticas; O valor é o número adicionado a cada linha na coluna e new_column é o nome da coluna que armazena o resultado.

Exemplo
Neste exemplo, realizaremos duas operações aritméticas - adição e subtração na coluna AGE.

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = ['rollno': '001', 'nome': 'sravan', 'idade': 23, 'altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16, 'altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7, 'altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9, 'altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37, 'altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
#Add 10 a envelhecer coluna
df.Selecione (df.idade, expr ("idade + 10 como idade_after_10")).mostrar()
#subtract 10 da coluna de idade
df.Selecione (df.idade, expr ("Idade - 10 como idade_before_10")).mostrar()

Saída

Na operação de adição, estamos adicionando 10 à coluna Age e armazenamos na coluna “Age_after_10”.

Na operação de subtração, subtraímos 10 da coluna AGE e a armazenamos na coluna “Age_Before_10”.

Conclusão

Neste tutorial de Pyspark, vimos como usar expr () em três cenários diferentes. Pode ser usado para expressões condicionais, pode ser usado para executar operações aritméticas e pode ser usado para concatenar várias colunas.