Pyspark Array_Remove, tamaño y reverso

Pyspark Array_Remove, tamaño y reverso
En este artículo sobre Pyspark demostraremos las funciones de procesamiento de la matriz array_remove (), tamaño() y contrarrestar() para manipular matrices.
  • método array_remove ()
  • Método de tamaño ()
  • Método inverso ()

Para hacer estos ejemplos, primero necesitamos introducir el Structtype (),Structfield () y ArrayType () Métodos que se utilizan para definir las columnas en Pyspark DataFrame. Al usar estos métodos, podemos definir los nombres de la columna y los tipos de datos de las columnas particulares.

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, tenemos que 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_remove ()

array_remove () se usa para eliminar un valor particular en una matriz en todas las filas en una columna de tipo matriz. Se necesitan dos parámetros.

Sintaxis:

array_remove (array_column, 'valor')

Parámetros:

  1. array_column es la columna de matriz que tiene matrices con valores
  2. El valor está presente en la matriz que se eliminará de los valores de la matriz.

la función array_remove () se usa con el método select () para hacer la acción.

Ejemplo:

En este momento, eliminaremos:

  1. 'A' de la columna Student_Full_Name
  2. 'P' de la columna Student_Full_Name
  3. 'K' de la columna 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.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)
# Muestra el marco de datos eliminando el valor 'A'
df.SELECT ("Student_full_Name", array_remove ('student_full_name', 'a'))).espectáculo()
# Muestra el marco de datos eliminando el valor 'P'
df.SELECT ("Student_Full_Name", Array_Remove ('Student_full_Name', 'P'))).espectáculo()
# Muestra el marco de datos eliminando el valor 'k'
df.SELECT ("Student_full_Name", Array_Remove ('Student_full_Name', 'K'))).espectáculo()

Producción:

En la primera salida, podemos ver en las segundas columnas:

Los valores de A, P y K se eliminan.

tamaño()

size () se usa para devolver la longitud o el recuento de valores presentes en una matriz en cada fila de un marco de datos. Se necesita un parámetro.

Sintaxis:

tamaño ('array_column')

Parámetro:

array_column se refiere a la columna de tipo de matriz

Ejemplo:

Obtenga el recuento de valores en una matriz en la columna 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.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)
# Obtenga el tamaño de los valores de matriz en todas las filas en la columna Student_Full_Name
df.SELECT ("Student_full_Name", size ('student_full_name')).espectáculo()

Producción:

Podemos ver que los valores totales presentes en la matriz en cada fila se devuelven.

contrarrestar()

inverso () se usa para revertir la matriz en cada fila.

Sintaxis:

reverso ('array_column')

Parámetro:

array_column se refiere a la columna de tipo de matriz

Ejemplo:

Invierta la matriz para todas las filas en la columna 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.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)
# Valores de matriz inversa en la columna Student_Full_Name
df.SELECT ("Student_full_Name", reverso ('student_full_name')).espectáculo()

Producción:

Podemos ver que los valores de matriz en student_full_name (2nd columna) se invierten.

Conclusión

En este artículo, vimos tres funciones diferentes aplicadas en columnas de tipo de matriz de Pyspark. array_remove () se usa para eliminar un valor particular presente en una matriz en todas las filas. Size () se usa para obtener el número total de valores presentes en una matriz y reversa () se usa para revertir la matriz.