Pyspark - StructtType & Structfield

Pyspark - StructtType & Structfield
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame.

Proporciona los métodos structtype () y structfield () que se utilizan para definir las columnas en el marco de datos de Pyspark.

Usando estos métodos, podemos definir los nombres de la columna y los tipos de datos de las columnas particulares.

Discutamos uno por uno

Structtype ()

Este método se utiliza para definir la estructura del marco de datos de Pyspark. Aceptará una lista de tipos de datos junto con los nombres de columnas para el marco de datos dado. Esto se conoce como el esquema del DataFrame. Almacena una colección de campos

Structfield ()

Este método se utiliza dentro del método structtype () del Pyspark DataFrame. Aceptará nombres de columnas con el tipo de datos.

Sintaxis:

esquema = structtype ([[
Structfield ("columna 1", tipo de datos, verdadero/falso),
Structfield ("columna 2", tipo de datos, verdadero/falso),
… ,
Structfield ("columna n", dataType, true/false)])

Donde el esquema se refiere al marco de datos cuando se crea

Parámetros:

1. Structtype acepta una lista de structfields en una lista separada por una coma

2. Structfield () se usa para agregar columnas al DataFrame, que toma los nombres de columnas como el primer parámetro y el tipo de datos de las columnas particulares como el segundo parámetro.

Tenemos que usar los tipos de datos de los métodos que se importan del Pyspark.sql.Módulo de tipos.

Los tipos de datos admitidos son:

  • StringType () - Se utiliza para almacenar valores de cadena
  • Integertype () - Se utiliza para almacenar valores enteros o enteros largos
  • FloatType () - Se utiliza para almacenar valores de flotación
  • DoubleType () - Se utiliza para almacenar valores dobles

3. Valores booleanos como el tercer parámetro; Si es verdadero, se utilizará el tipo de datos dado; De lo contrario, no cuando es falso.

Tenemos que pasar este esquema al método DataFrame junto con los datos.

Sintaxis:

creatataFrame (datos, esquema = esquema)

Ejemplo 1:

En este ejemplo, creamos datos dentro de la lista que contiene 5 filas y 6 columnas, y estamos asignando nombres de columnas como ROLLNO con el tipo de datos de cadena, un nombre con el tipo de datos de cadena, edad con tipo entero, altura con un tipo flotante , peso con entero y dirección con el tipo de datos de cadena.

Finalmente, vamos a mostrar DataFrame usando el método show ().

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#e importar tipos de estructura y tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [['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 el structtype y structfields
#Para los nombres de la columna a continuación
esquema = structtype ([[
Structfield ("rollno", stringType (), verdadero),
Structfield ("name", stringType (), verdadero),
Structfield ("edad", integertype (), verdadero),
Structfield ("altura", floatType (), verdadero),
Structfield ("peso", integertype (), verdadero),
Structfield ("dirección", stringType (), verdadero)
])
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.CreatedAtaFrame (estudiantes, esquema = esquema)
#Disprazando el marco de datos
df.espectáculo()

Producción:

Si queremos mostrar el esquema DataFrame, entonces tenemos que usar el método de esquema.

Esto devolverá el tipo de marco de datos junto con las columnas

Sintaxis:

Marco de datos. esquema

Si queremos mostrar campos, entonces tenemos que usar campos con esquema

Sintaxis:

Marco de datos. esquema.campos

Ejemplo 2

En este ejemplo, vamos a mostrar el esquema de DataFrame

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#e importar tipos de estructura y tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [['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 el structtype y structfields
#Para los nombres de la columna a continuación
esquema = structtype ([[
Structfield ("rollno", stringType (), verdadero),
Structfield ("name", stringType (), verdadero),
Structfield ("edad", integertype (), verdadero),
Structfield ("altura", floatType (), verdadero),
Structfield ("peso", integertype (), verdadero),
Structfield ("dirección", stringType (), verdadero)
])
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.CreatedAtaFrame (estudiantes, esquema = esquema)
# Muestra el esquema
Imprimir (DF.esquema)

Producción:

[Structfield (rollno, stringType, true), structfield (name, stringType, true), structfield (edad, integertype, true), structfield (altura, floattype, true), structfield (peso, integertype, true), structfield (dirección,, dirección, StringType, verdadero)]

Ejemplo 3

En este ejemplo, vamos a mostrar los campos de esquema del marco de datos utilizando el esquema.campos

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#e importar tipos de estructura y tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [['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 el structtype y structfields
#Para los nombres de la columna a continuación
esquema = structtype ([[
Structfield ("rollno", stringType (), verdadero),
Structfield ("name", stringType (), verdadero),
Structfield ("edad", integertype (), verdadero),
Structfield ("altura", floatType (), verdadero),
Structfield ("peso", integertype (), verdadero),
Structfield ("dirección", stringType (), verdadero)
])
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.CreatedAtaFrame (estudiantes, esquema = esquema)
# Muestra los campos de esquema
Imprimir (DF.esquema.campos)

Producción:

[Structfield (rollno, stringType, true), structfield (name, stringType, true), structfield (edad, integertype, true), structfield (altura, floattype, true), structfield (peso, integertype, true), structfield (dirección,, dirección, StringType, verdadero)]

También podemos usar el método PrintSchema () para mostrar el esquema en formato de árbol

Sintaxis:

Marco de datos.printschema ()

Ejemplo 4:

Muestra el esquema en formato de árbol con el método PrintSchema ()

#Importa el módulo pyspaprk
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#e importar tipos de estructura y tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [['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 el structtype y structfields
#Para los nombres de la columna a continuación
esquema = structtype ([[
Structfield ("rollno", stringType (), verdadero),
Structfield ("name", stringType (), verdadero),
Structfield ("edad", integertype (), verdadero),
Structfield ("altura", floatType (), verdadero),
Structfield ("peso", integertype (), verdadero),
Structfield ("dirección", stringType (), verdadero)
])
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.CreatedAtaFrame (estudiantes, esquema = esquema)
# Muestra el esquema en formato de árbol
df.printschema ()

Producción: