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: