Pyspark arra_min y array_max

Pyspark arra_min y array_max
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.

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

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.

ArrayType ()

Este método se utiliza para definir la estructura de matriz del marco de datos de Pyspark. Aceptará una lista de tipos de datos. Almacena una colección de campos. Podemos colocar los tipos de datos dentro de ArrayType ().

En este artículo, debemos crear un marco de datos con una matriz.

Creemos un marco de datos con 2 columnas. La primera columna es estudiante_categoría que se refiere al campo entero para almacenar identificaciones de estudiante. La segunda columna - Student_full_Name se usa para almacenar valores de cadena en una matriz creada usando ArrayType ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structtype ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
df.espectáculo()

Producción:

array_min ()

Ahora veremos lo que hace Array_min ().

array_min () Devuelve los valores mínimos en cada fila de la columna de tipo de matriz.

Esto es posible usando el método select (). Dentro de este método, podemos usar la función Array_min () y devolver el resultado.

Sintaxis:

marco de datos.SELECT (Array_min (Array_Column))

Parámetros:

array_column contiene valores de tipo de matriz

Devolver:

Devolverá valores mínimos en una matriz en todas las filas en una columna de matriz.

Ejemplo:

En este ejemplo, devolveremos los valores mínimos en una columna de matriz - student_full_name

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Importación de funciones *
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# Obtenga los valores mínimos de la columna Student_Full_Name
df.SELECT ("Student_full_Name", Array_min ('Student_full_Name')).espectáculo()

Producción:

Podemos ver que en la primera fila, - la matriz contiene: A, por lo que A será el mínimo (comparado según los valores ASCII).

En la segunda fila - Array tiene B, L, B. - B es mínimo

En tercera fila - Array tiene K, A, K. - A es mínimo

En la cuarta fila - Array tiene K-. K es mínimo

En la quinta fila - Array tiene B, P. - B es mínimo

array_max ()

Ahora, veremos lo que haz la array_max ().

array_max () Devuelve los valores máximos en cada fila de la columna de tipo de matriz.

Esto es posible usando el método select (). Dentro de este método, podemos usar la función array_max () y devolver el resultado.

Sintaxis:

marco de datos.SELECT (array_max (array_column))

Parámetros:

array_column contiene valores de tipo de matriz

Devolver:

Devolverá los valores máximos en una matriz en todas las filas en una columna de matriz.

Ejemplo:

En este ejemplo, devolveremos los valores máximos en una columna de matriz - student_full_name

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Importación de funciones *
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# Obtenga los valores máximos de la columna Student_Full_Name
df.SELECT ("Student_full_Name", array_max ('student_full_name')).espectáculo()

Producción:

Podemos ver que en la primera fila contiene: A, por lo que A será el máximo (comparado según los valores ASCII).

En la segunda fila - Array tiene B, L, B. - L es máximo

En tercera fila - Array tiene K, A, K. - K es máximo

En la cuarta fila - Array tiene K-. K es máximo

En la quinta fila - la matriz tiene B, P. - P es máximo.

Conclusión

En este tutorial, vimos funciones array_min () y array_max (). array_min utilizado para devolver los valores mínimos en una columna de tipo de matriz en todas las filas. array_max se usa para devolver los valores máximos en una columna de tipo de matriz en todas las filas.