Pyspark Shuffle & Sort_array

Pyspark Shuffle & Sort_array
"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 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.

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 ().

Entonces, 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 student_category

Eso se refiere al campo entero para almacenar la identificación del estudiante y 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:

barajar()

Shuffle () se usa para barajar los valores en una matriz para todas las filas en la columna de tipo de matriz del marco de datos de Pyspark. Devolverá una nueva matriz con valores barajados. Toma el nombre de la columna del tipo de matriz como parámetro. Tenga en cuenta que baraja al azar.

Sintaxis:

Shuffle (array_column)

Parámetro:

array_column es la columna de matriz que tiene matrices con valores

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

Devolver:

Devolverá la matriz con valores barajados.

Ejemplo

En este ejemplo, usaremos la función shuffle () para barajar los valores presentes 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.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)
#Shuff los valores de la matriz en la columna Student_Full_Name
df.SELECT ("Student_full_Name", shuffle ("student_full_name")).espectáculo()

Producción:

Puedes ver en la segunda columna que los valores en la matriz fueron barajados.

sort_array ()

sort_array () se usa para ordenar los elementos en una matriz. Se necesitan dos parámetros; El primer parámetro es el nombre de la columna del tipo de matriz, y el segundo parámetro es el ASC que toma valores booleanos. Si es cierto, entonces la matriz se clasifica en orden ascendente. Si es falso, la matriz se clasifica en orden descendente. Por defecto, ordenará la matriz en orden ascendente.

Sintaxis:

sort_array (array_column, asc = true/false)

Parámetros:

  1. array_column es la columna de matriz que tiene matrices con valores
  2. ASC toma valores booleanos para ordenar la matriz en ascenso o en orden descendente.

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

Devolver:

Si devuelve una matriz ordenada para todas las filas en una columna de tipo de matriz.

Ejemplo 1

En este ejemplo, ordenaremos la columna Student_Full_Name en orden ascendente.

#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)
#sortes los valores de la matriz en la columna student_full_name en orden ascendente
df.SELECT ("Student_full_Name", sort_array ("student_full_name", asc = true))).espectáculo()

Producción:

Entonces, en la segunda columna, puede ver que la matriz se clasifica en orden ascendente para todas las filas.

Ejemplo 2

En este ejemplo, ordenaremos la columna Student_Full_Name en orden descendente.

#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)
#sortes los valores de la matriz en la columna student_full_name en orden descendente
df.SELECT ("Student_full_Name", sort_array ("student_full_name", asc = false))).espectáculo()

Producción:

Entonces, en la segunda columna, puede ver que la matriz se clasifica en orden descendente para todas las filas.

Conclusión

En este artículo de Pyspark, vimos dos funciones de matriz diferentes. Shuffle () se usa para barajar los valores en una columna de tipo de matriz. A continuación, discutimos el método sort_array () que se utiliza para ordenar las matrices en una columna de tipo de matriz. Si desea ordenar la matriz en orden descendente, puede usar el parámetro ASC establecido en falso.