“Em 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 específicas.”
Vamos discuti -los um por um
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 ().
Então, neste artigo, temos que criar um DataFrame com uma matriz.
Vamos criar um quadro de dados com 2 colunas. A primeira coluna é Student_category
Isso se refere ao campo inteiro para armazenar IDs de estudante e a segunda coluna - Student_full_Name
é usado 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:
shuffle ()
shuffle () é usado para embaralhar os valores em uma matriz para todas as linhas na coluna do tipo de matriz do pyspark dataframe. Ele retornará uma nova matriz com valores embaralhados. Ele leva o nome da coluna do tipo de matriz como um parâmetro. Por favor, observe que ele se abriga aleatoriamente.
Sintaxe:
Shuffle (Array_column)
Parâmetro:
Array_column é a coluna Array que tem matrizes com valores
A função shuffle () é usada com o método select () para fazer a ação.
Retornar:
Ele retornará a matriz com valores embaralhados.
Exemplo
Neste exemplo, usaremos a função shuffle () para embaralhar os valores presentes na coluna 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)
#Shuffle os valores da matriz na coluna student_full_name
df.Selecione ("student_full_name", shuffle ("student_full_name")))).mostrar()
Saída:
Você pode ver na segunda coluna que os valores na matriz foram embaralhados.
sort_array ()
Sort_array () é usado para classificar os elementos em uma matriz. São necessários dois parâmetros; O primeiro parâmetro é o nome da coluna do tipo de matriz, e o segundo parâmetro é o ASC que leva valores booleanos. Se for verdade, a matriz será classificada em ordem ascendente. Se for falso, a matriz será classificada em ordem decrescente. Por padrão, ele classificará a matriz em ordem ascendente.
Sintaxe:
Sort_array (Array_column, ASC = true/false)
Parâmetros:
- Array_column é a coluna Array que tem matrizes com valores
- ASC usa valores booleanos para classificar a matriz em ordem ascendente ou descendente.
Sort_array () função é usada com o método select () para fazer a ação.
Retornar:
Se retornar uma matriz classificada para todas as linhas em uma coluna do tipo de matriz.
Exemplo 1
Neste exemplo, classificaremos a coluna student_full_name em ordem crescente.
#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)
#Sort os valores da matriz na coluna student_full_name em ordem ascendente
df.Selecione ("Student_full_Name", Sort_array ("Student_full_Name", ASC = true)).mostrar()
Saída:
Então, na segunda coluna, você pode ver que a matriz é classificada em ordem crescente para todas as linhas.
Exemplo 2
Neste exemplo, classificaremos a coluna Student_full_Name em ordem decrescente.
#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)
#Sort os valores da matriz na coluna student_full_name em ordem decrescente
df.Selecione ("Student_full_Name", Sort_array ("Student_full_Name", ASC = false)).mostrar()
Saída:
Então, na segunda coluna, você pode ver que a matriz é classificada em ordem decrescente para todas as linhas.
Conclusão
Neste artigo Pyspark, vimos duas funções de matriz diferentes. shuffle () é usado para embaralhar os valores em uma coluna do tipo de matriz. Em seguida, discutimos o método Sort_array () que é usado para classificar as matrizes em uma coluna do tipo de matriz. Se você deseja classificar a matriz em ordem decrescente, pode usar o parâmetro ASC definido como false.