Pyspark Converter coluna de string para tipo inteiro

Pyspark Converter coluna de string para tipo inteiro
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame. Discutiremos diferentes métodos para converter a coluna de string para o número inteiro no Pyspark DataFrame.
  1. Método 1: Usando a palavra -chave int with withcolumn ()
  2. Método 2: Usando IntegerType () com WithColumn ()
  3. Método 3: Usando a palavra -chave int com select ()
  4. Método 4: Usando a palavra -chave int com selectExpr ()

Antes de mudar para os cenários, criaremos o Pyspark DataFrame. Aqui vamos criar dados de dados Pyspark com 5 linhas e 6 colunas e exibir a coluna com tipos de dados usando o método printSchema ().

Importar Pyspark
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)
#Obtenha o esquema
df.PrintSchema ()

Saída:

raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: dupla (anulável = true)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: String (Nullable = True)

Método 1: Usando a palavra -chave int with withcolumn () método

Neste método, estamos usando o método withcolumn () para alterar o tipo de dados de string para número inteiro, passando a palavra -chave Int dentro da função ().

Sintaxe:
quadro de dados.Withcolumn ("Coluna", DF.coluna.elenco ('int'))

withcolumn () levará dois parâmetros:

  1. coluna é o nome da coluna cujo tipo de dados é convertido.
  2. Cast () converte a string em número inteiro tomando a palavra -chave int como um parâmetro.

Exemplo:
Neste exemplo, converteremos o tipo de dados da coluna de peso para inteiro e exibirá o esquema usando o método PrintSchema ().

Importar Pyspark
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)
#Convert Datatype da coluna de peso de peso para o número inteiro
df.Withcolumn ("Peso", DF.peso.elenco ('int')).PrintSchema ()

Saída:

raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: dupla (anulável = true)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: Inteiro (Nullable = True)

Método 2: Usando o IntegerType () com o método WithColumn ()

Neste método, estamos usando o método WithColumn () para alterar o tipo de dados de string para número inteiro passando Integertype () Método Inside Cast () Função. Temos que importar esse método do Pyspark.SQL.Módulo de tipos.

Sintaxe:
quadro de dados.Withcolumn ("Coluna", DF.coluna.elenco (Integertype ()))

withcolumn () levará dois parâmetros:

  1. coluna é o nome da coluna cujo tipo de dados é convertido.
  2. Cast () converte a string em número inteiro tomando o método integertype () como um parâmetro.

Exemplo:
Neste exemplo, converteremos o tipo de dados da coluna de peso para inteiro e exibirá o esquema usando o método PrintSchema ().

Importar Pyspark
de Pyspark.SQL Import SparkSession
de Pyspark.SQL.tipos importam INTEGERTYPE
#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 Datatype da coluna de peso de peso para o número inteiro
df.Withcolumn ("Peso", DF.peso.elenco (Integertype ())).PrintSchema ()

Saída:

raiz
|- Endereço: String (Nullable = true)
|- Idade: Long (Nullable = True)
|- Altura: dupla (anulável = true)
|- Nome: String (Nullable = True)
|- rolno: string (nullable = true)
|- Peso: Inteiro (Nullable = True)

Método 3: Usando a palavra -chave int com o método select ()

Neste método, estamos usando o método SELECT () para alterar o tipo de dados de string para número inteiro, passando por uma palavra -chave INT dentro da função (). Podemos selecionar a coluna usando o método col (). col () é importado do Pyspark.SQL.Módulo de funções.

Sintaxe:
quadro de dados.Selecione (col (“coluna”), elenco ('int')))

Select () levará dois parâmetros:

  1. coluna é o nome da coluna cujo tipo de dados é convertido.
  2. Cast () converte a string em número inteiro tomando a palavra -chave int como um parâmetro.

Exemplo:
Neste exemplo, converteremos o tipo de dados da coluna de peso para inteiro e exibirá o esquema usando o método PrintSchema ().

Importar Pyspark
de Pyspark.SQL Import SparkSession
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 Datatype da coluna de peso de peso para o número inteiro
df.Selecione (col ("peso").elenco ('int')).PrintSchema ()

Saída:

raiz
|- Peso: Inteiro (Nullable = True)

Método 4: Usando a palavra -chave int com o método selectExpr ()

Neste método, estamos usando o método selectExpr () para alterar o tipo de dados de string para inteiro, passando a palavra -chave INT dentro da função (). Será necessário o parâmetro como uma expressão

Sintaxe:
quadro de dados.SelectExpr ("Cast (coluna como int)")

Select () levará dois parâmetros:

  1. coluna é o nome da coluna cujo tipo de dados é convertido.
  2. Cast () converte a string em número inteiro tomando a palavra -chave int como um parâmetro.

Exemplo:
Neste exemplo, converteremos o tipo de dados da coluna de peso para inteiro e exibirá o esquema usando o método PrintSchema ().

Importar Pyspark
de Pyspark.SQL Import SparkSession
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 Datatype da coluna de peso de peso para o número inteiro
df.SelectExpr ("Cast (peso como int)")

Saída:

DataFrame [Peso: int]

Conclusão

Neste tutorial, discutimos quatro métodos para converter string em colunas do tipo inteiro no Pyspark Dataframe. withcolumn (), select () e selectExpr () são os métodos usados ​​para converter o tipo de dados. Observamos que em todos os métodos, o parâmetro fundido () é usado.