Pyspark Array_remove, tamanho e reverso

Pyspark Array_remove, tamanho e reverso
Neste artigo sobre Pyspark, demonstraremos as funções de processamento da matriz Array_remove (), tamanho() e reverter() para manipular matrizes.
  • Método Array_remove ()
  • Método de tamanho ()
  • método reverso ()

Para fazer esses exemplos, precisamos primeiro apresentar o Structype (),Structfield () e ArrayType () Métodos que são usados ​​para definir as colunas no quadro de dados Pyspark. Ao usar esses métodos, podemos definir os nomes das colunas e os tipos de dados das colunas específicas.

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

Array_remove () é usado para remover um valor específico em uma matriz em todas as linhas em uma coluna do tipo de matriz. São necessários dois parâmetros.

Sintaxe:

Array_remove (Array_column, 'Value')

Parâmetros:

  1. Array_column é a coluna Array que tem matrizes com valores
  2. o valor está presente na matriz a ser removido dos valores da matriz.

A função Array_remove () é usada com o método select () para fazer a ação.

Exemplo:

Neste exemplo, vamos remover:

  1. 'A' da coluna student_full_name
  2. 'P' da coluna Student_full_Name
  3. 'K' da 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 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)
# Exiba o DataFrame removendo o valor 'A'
df.Selecione ("student_full_name", Array_remove ('student_full_name', 'a'))).mostrar()
# Exiba o DataFrame removendo o valor 'P'
df.Selecione ("student_full_name", Array_remove ('student_full_name', 'p'))).mostrar()
# Exiba o DataFrame removendo o valor 'K'
df.Selecione ("student_full_name", Array_remove ('student_full_name', 'k'))).mostrar()

Saída:

Na primeira saída, podemos ver em segundas colunas:

Os valores A, P e K são removidos.

tamanho()

size () é usado para retornar o comprimento ou a contagem de valores presentes em uma matriz em cada linha de um quadro de dados. É preciso um parâmetro.

Sintaxe:

tamanho ('Array_column')

Parâmetro:

Array_column refere -se à coluna do tipo de matriz

Exemplo:

Obtenha a contagem de valores em uma matriz 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 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)
# Obtenha o tamanho dos valores da matriz em todas as linhas na coluna student_full_name
df.Selecione ("student_full_name", size ('student_full_name'))).mostrar()

Saída:

Podemos ver que os valores totais presentes na matriz em cada linha são devolvidos.

reverter()

reverse () é usado para reverter a matriz em cada linha.

Sintaxe:

reverso ('Array_column')

Parâmetro:

Array_column refere -se à coluna do tipo de matriz

Exemplo:

Inverta a matriz para todas as linhas 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 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)
# Valores da matriz reversa na coluna student_full_name
df.Selecione ("student_full_name", reverse ('student_full_name'))).mostrar()

Saída:

Podemos ver que os valores da matriz em student_full_name (2ª coluna) são revertidos.

Conclusão

Neste artigo, vimos três funções diferentes aplicadas em colunas do tipo Pyspark Array. Array_remove () é usado para remover um valor específico presente em uma matriz em todas as linhas. Size () é usado para obter o número total de valores presentes em uma matriz e reverse () é usado para reverter a matriz.