Pyspark - Structype & Structfield

Pyspark - Structype & Structfield
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame.

Ele fornece os métodos Structype () e Structfield () que são usados ​​para definir as colunas no Pyspark DataFrame.

Usando esses métodos, podemos definir os nomes das colunas e os tipos de dados das colunas específicas.

Vamos discutir um por um

Structype ()

Este método é usado para definir a estrutura do quadro de dados Pyspark. Ele aceitará uma lista de tipos de dados, juntamente com nomes de colunas para o DataFrame especificado. Isso é conhecido como o esquema do DataFrame. Ele armazena uma coleção de campos

Structfield ()

Este método é usado dentro do método structtype () do pyspark dataframe. Ele aceitará nomes de colunas com o tipo de dados.

Sintaxe:

esquema = structtype ([
Structfield ("Coluna 1", Datatype, True/False),
Structfield ("Coluna 2", Datatype, True/False),
.. ,
Structfield ("Coluna N", Datatype, True/False)])

Onde o esquema se refere ao quadro de dados quando é criado

Parâmetros:

1. Structype aceita uma lista de Structfields em uma lista separada por uma vírgula

2. Structfield () é usado para adicionar colunas ao DataFrame, que leva os nomes das colunas como o primeiro parâmetro e o tipo de dados das colunas específicas como o segundo parâmetro.

Temos que usar os tipos de dados dos métodos que são importados do Pyspark.SQL.Módulo de tipos.

Os tipos de dados suportados são:

  • Stringtype () - usado para armazenar valores de string
  • Integertype () - usado para armazenar valores inteiros ou inteiros longos
  • Floottype () - usado para armazenar valores de flutuação
  • DoubleType () - usado para armazenar valores duplos

3. Valores booleanos como o terceiro parâmetro; Se for verdadeiro, o tipo de dados fornecido será usado; Caso contrário, não quando é falso.

Temos que passar este esquema para o método de dados de dados junto com dados.

Sintaxe:

CreatedAtAframe (dados, esquema = esquema)

Exemplo 1:

Neste exemplo, criamos dados dentro da lista que contém 5 linhas e 6 colunas, e estamos atribuindo nomes de colunas como rollno com o tipo de dados da string, um nome com o tipo de dados da string, idade com tipo inteiro, altura com um tipo de bóia , peso com número inteiro e endereço com o tipo de dados da string.

Finalmente, vamos exibir o quadro de dados usando o método show ().

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
estudantes = [['001', 'sravan', 23,5.79,67, 'Guntur'],
['002', 'ojaswi', 16,3.79,34, 'Hyd'],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'rohith', 9,3.69,28, 'Hyd'],
['005', 'Sridevi', 37,5.59,54, 'Hyd']]
#Define o StructType e Structfields
#para os nomes de colunas abaixo
esquema = structtype ([
Structfield ("rollno", stringtype (), true),
Structfield ("Nome", Stringtype (), True),
Structfield ("Age", Integertype (), verdadeiro),
Structfield ("Height", Floottype (), True),
Structfield ("Peso", Integertype (), True),
Structfield ("Endereço", Stringtype (), True)
]))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.CreatedataFrame (estudantes, esquema = esquema)
#Display O DataFrame
df.mostrar()

Saída:

Se queremos exibir o esquema de dados de dados, temos que usar o método do esquema.

Isso retornará o tipo de dados de dados junto com colunas

Sintaxe:

Quadro de dados. esquema

Se queremos exibir campos, temos que usar campos com esquema

Sintaxe:

Quadro de dados. esquema.Campos

Exemplo 2

Neste exemplo, vamos exibir o esquema do DataFrame

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
estudantes = [['001', 'sravan', 23,5.79,67, 'Guntur'],
['002', 'ojaswi', 16,3.79,34, 'Hyd'],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'rohith', 9,3.69,28, 'Hyd'],
['005', 'Sridevi', 37,5.59,54, 'Hyd']]
#Define o StructType e Structfields
#para os nomes de colunas abaixo
esquema = structtype ([
Structfield ("rollno", stringtype (), true),
Structfield ("Nome", Stringtype (), True),
Structfield ("Age", Integertype (), verdadeiro),
Structfield ("Height", Floottype (), True),
Structfield ("Peso", Integertype (), True),
Structfield ("Endereço", Stringtype (), True)
]))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.CreatedataFrame (estudantes, esquema = esquema)
# exiba o esquema
Imprimir (df.esquema)

Saída:

[Structfield (Rollno, Stringtype, True), Structfield (Nome, Stringtype, True), Structfield (idade, Integertype, True), Structfield (Height, Floottype, True), Structfield (Peso, Integertype, True) (Endereço, Endereço, Stringtype, true)]

Exemplo 3

Neste exemplo, vamos exibir os campos de esquema do DataFrame usando o esquema.Campos

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
estudantes = [['001', 'sravan', 23,5.79,67, 'Guntur'],
['002', 'ojaswi', 16,3.79,34, 'Hyd'],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'rohith', 9,3.69,28, 'Hyd'],
['005', 'Sridevi', 37,5.59,54, 'Hyd']]
#Define o StructType e Structfields
#para os nomes de colunas abaixo
esquema = structtype ([
Structfield ("rollno", stringtype (), true),
Structfield ("Nome", Stringtype (), True),
Structfield ("Age", Integertype (), verdadeiro),
Structfield ("Height", Floottype (), True),
Structfield ("Peso", Integertype (), True),
Structfield ("Endereço", Stringtype (), True)
]))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.CreatedataFrame (estudantes, esquema = esquema)
# Exiba os campos de esquema
Imprimir (df.esquema.Campos)

Saída:

[Structfield (Rollno, Stringtype, True), Structfield (Nome, Stringtype, True), Structfield (idade, Integertype, True), Structfield (Height, Floottype, True), Structfield (Peso, Integertype, True) (Endereço, Endereço, Stringtype, true)]

Também podemos usar o método printSchema () para exibir o esquema em formato de árvore

Sintaxe:

Quadro de dados.PrintSchema ()

Exemplo 4:

Exiba o esquema em formato de árvore com o método PrintSchema ()

#import o módulo PysPaprk
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
estudantes = [['001', 'sravan', 23,5.79,67, 'Guntur'],
['002', 'ojaswi', 16,3.79,34, 'Hyd'],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'rohith', 9,3.69,28, 'Hyd'],
['005', 'Sridevi', 37,5.59,54, 'Hyd']]
#Define o StructType e Structfields
#para os nomes de colunas abaixo
esquema = structtype ([
Structfield ("rollno", stringtype (), true),
Structfield ("Nome", Stringtype (), True),
Structfield ("Age", Integertype (), verdadeiro),
Structfield ("Height", Floottype (), True),
Structfield ("Peso", Integertype (), True),
Structfield ("Endereço", Stringtype (), True)
]))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.CreatedataFrame (estudantes, esquema = esquema)
# Exiba o esquema em formato de árvore
df.PrintSchema ()

Saída: