Pyspark Arra_min e Array_max

Pyspark Arra_min e Array_max
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.

Ao usar esses métodos, podemos definir os nomes das colunas e os tipos de dados das colunas.

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.

ArrayType ()

Este método é usado para definir a estrutura da matriz do quadro de dados Pyspark. Ele aceitará uma lista de tipos de dados. Ele armazena uma coleção de campos. Podemos colocar tipos de dados dentro do ArrayType ().

Neste artigo, devemos criar um quadro de dados com uma matriz.

Vamos criar um quadro de dados com 2 colunas. A primeira coluna é Student_category, que se refere ao campo inteiro para armazenar IDs de estudante. A segunda coluna - Student_full_Name é usada para armazenar valores de string em uma matriz criada usando ArrayType ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e outros tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype, ArrayType
de Pyspark.SQL.Funções Importar Array_Contains
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Considere uma matriz com 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p']]]]
#Define o StructType e Structfields
#para os dados acima
Esquema = StructType ([Structfield ("Student_category", Integertype ()), Structfield ("Student_full_Name", ArrayType (Stringtype ())))))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.Createdataframe (my_array_data, esquema = esquema)
df.mostrar()

Saída:

Array_min ()

Agora, veremos o que Array_min () faz.

Array_min () retorna os valores mínimos em cada linha da coluna do tipo de matriz.

Isso é possível usando o método select (). Dentro deste método, podemos usar a função Array_min () e retornar o resultado.

Sintaxe:

quadro de dados.Selecione (Array_min (Array_Column))

Parâmetros:

Array_column contém valores do tipo de matriz

Retornar:

Ele retornará valores mínimos em uma matriz em todas as linhas em uma coluna de matriz.

Exemplo:

Neste exemplo, retornaremos os valores mínimos em uma coluna de matriz - Student_full_Name

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e outros tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype, ArrayType
de Pyspark.SQL.Funções Importar *
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Considere uma matriz com 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p']]]]
#Define o StructType e Structfields
#para os dados acima
esquema = structtype ([structfield ("student_category", integertype ()), structfield ("student_full_name", arraytype (stringtype ())))))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.Createdataframe (my_array_data, esquema = esquema)
# Obtenha os valores mínimos da coluna student_full_name
df.Selecione ("student_full_name", Array_min ('student_full_name')).mostrar()

Saída:

Podemos ver que na primeira linha, - a matriz contém: a, então a será o mínimo (comparado com base nos valores ASCII).

Na segunda linha - a matriz tem B, L, B. - B é mínimo

Na terceira fila - a matriz tem k, a, k. - A é mínimo

Na quarta fila - a matriz tem k-. K é mínimo

Na quinta fila - a matriz tem B, p. - B é mínimo

Array_max ()

Agora, veremos o que Array_max () faz.

Array_max () retorna os valores máximos em cada linha da coluna do tipo de matriz.

Isso é possível usando o método select (). Dentro deste método, podemos usar a função Array_max () e retornar o resultado.

Sintaxe:

quadro de dados.Selecione (Array_max (Array_column))

Parâmetros:

Array_column contém valores do tipo de matriz

Retornar:

Ele retornará valores máximos em uma matriz em todas as linhas em uma coluna de matriz.

Exemplo:

Neste exemplo, retornaremos os valores máximos em uma coluna de matriz - Student_full_Name

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#e importar tipos de estrutura e outros tipos de dados
de Pyspark.SQL.Tipos de importação estruttype, structfield, stringtype, integertype, floottype, ArrayType
de Pyspark.SQL.Funções Importar *
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Considere uma matriz com 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p']]]]
#Define o StructType e Structfields
#para os dados acima
esquema = structtype ([structfield ("student_category", integertype ()), structfield ("student_full_name", arraytype (stringtype ())))))
#Crie o DataFrame e adicione esquema ao DataFrame
df = spark_app.Createdataframe (my_array_data, esquema = esquema)
# Obtenha os valores máximos da coluna student_full_name
df.Selecione ("student_full_name", Array_max ('student_full_name')).mostrar()

Saída:

Podemos ver que na primeira linha - a matriz contém: a, então a será o máximo (comparado com base nos valores ASCII).

Na segunda linha - a matriz tem B, L, B. - L é o máximo

Na terceira fila - a matriz tem k, a, k. - K é o máximo

Na quarta fila - a matriz tem k-. K é o máximo

Na quinta fila - a matriz tem B, P. - P é o máximo.

Conclusão

Neste tutorial, vimos as funções Array_min () e Array_max (). Array_min usado para retornar valores mínimos em uma coluna do tipo de matriz em todas as linhas. Array_max é usado para retornar valores máximos em uma coluna do tipo de matriz em todas as linhas.