PYSPARK - Método WithColumn

PYSPARK - Método WithColumn
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame.

WithColumn () em Pyspark é usado para fazer as operações nas colunas Pyspark Dataframe. As operações incluem

  1. Altere o tipo de dados da coluna
  2. Modificar os valores na coluna
  3. Adicione uma nova coluna da coluna existente

Antes de mudar para os métodos, criaremos o Pyspark DataFrame

Exemplo:

Aqui, criaremos um pyspark DataFrame com 5 linhas e 6 colunas.

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#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 O DataFrame
df.mostrar()

Saída:

Altere o tipo de dados da coluna

Podemos alterar o tipo de dados de uma coluna específica usando o método withcolumn ().

Sintaxe:

Quadro de dados.withcolumn ("column_name", col ("column_name").elenco ("Datatype")))

Parâmetros:

1. Column_name é a coluna cujo tipo de dados é alterado

2. A função col () é usada para obter o nome da coluna

3. Cast () é usado para alterar o tipo de dados da coluna de um tipo para outro, aceitando o nome do tipo de dados como um parâmetro. Os tipos de dados incluem string, número inteiro, duplo.

Exemplo:

Neste exemplo, a altura é do tipo de dados flutuante. Podemos alterá -lo para o número inteiro usando o método acima e exibir o esquema usando o método PrintSchema () e DataFrame usando o método collect ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#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)
#Convert Float Type to Inteiro Tipo de coluna de altura
df = df.Withcolumn ("Height", Col ("Height").elenco ("inteiro"))
#Display Modificado DataFrame
Imprimir (df.colet ()))
#llets exibem o esquema
df.PrintSchema ()

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5, nome = 'sravan', rollno = '001', peso = 67), linha (endereço = 'hyd', idade = 16, altura = 3, nome = 'ojaswi', rollno = '002', peso = 34), linha (endereço = 'patna', idade = 7, altura = 2, nome = 'gnanesh Chowdary', rollno = '003', peso = 17) , Linha (endereço = 'hyd', idade = 9, altura = 3, nome = 'rohith', rollno = '004', peso = 28), linha (endereço = 'hyd', idade = 37, altura = 5, nome = 'sridevi', rollno = '005', peso = 54)]
raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: Inteiro (Nullable = True)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: longo (nulo = true)

Modificar os valores na coluna

Podemos modificar os valores de uma coluna específica usando o método withcolumn ().

Sintaxe:

Quadro de dados.withcolumn ("column_name", col ("column_name"))

Parâmetros:

1. Column_name é a coluna cujo tipo de dados é alterado

2. A função col () é usada para alterar os valores no nome da coluna

Exemplo:

Neste exemplo, subtrairemos cada valor na coluna de peso por 10.

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#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)
#decrease cada valor na coluna de peso por 10
df = df.Withcolumn ("Peso", Col ("Peso")-10)
#Display Modificado DataFrame
Imprimir (df.colet ()))
#llets exibem o esquema
df.PrintSchema ()

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 57), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 24), linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'gnanesh Chowdary', rollno = '003', peso = 7), linha (endereço = 'hyd', idade = 9, altura = 3.69, nome = 'rohith', rollno = '004', peso = 18), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 44)]
raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: dupla (anulável = true)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: longo (nulo = true)

Adicione uma nova coluna da coluna existente

Podemos adicionar uma nova coluna de uma coluna existente usando o método WithColumn ().

Sintaxe:

Quadro de dados.withcolumn ("new_column", col ("column_name"))

Parâmetros:

1. new_column é a coluna

2. A função col () é usada para adicionar seus valores de coluna ao new_column

Exemplo:

Este exemplo criará uma nova coluna - "Power" e adicionará valores a esta coluna, multiplicando cada valor na coluna de peso por 10.

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import a função col
de Pyspark.SQL.funções Importar col
#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 coluna chamada Power
#da coluna de peso multiplicada por 2
df = df.Withcolumn ("Power", Col ("Peso")* 2)
#Display Modificado DataFrame
Imprimir (df.colet ()))
#llets exibem o esquema
df.PrintSchema ()

Saída:

[Linha (endereço = 'guntur', idade = 23, altura = 5.79, nome = 'sravan', rollno = '001', peso = 67, potência = 134), linha (endereço = 'hyd', idade = 16, altura = 3.79, nome = 'ojaswi', rollno = '002', peso = 34, potência = 68), linha (endereço = 'patna', idade = 7, altura = 2.79, nome = 'gnanesh Chowdary', rollno = '003', peso = 17, potência = 34), linha (endereço = 'hyd', idade = 9, altura = 3.69, nome = 'rohith', rollno = '004', peso = 28, potência = 56), linha (endereço = 'hyd', idade = 37, altura = 5.59, nome = 'sridevi', rollno = '005', peso = 54, potência = 108)]
raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: dupla (anulável = true)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: longo (nulo = true)
|- Poder: Long (Nullable = True)

Conclusão:

Este artigo discutiu como alterar os tipos de dados, modificar os valores nas colunas existentes e adicionar uma nova coluna usando o método withcolumn ().