Pyspark - Função variacia_stddev

Pyspark - Função variacia_stddev
Depois de particionar as linhas no quadro de dados Pyspark, é possível retornar a variação e o desvio padrão em cada partição. Ao usar algumas funções agregadas em uma janela de partição, é possível retornar a variação e o desvio padrão.

Primeiro, veremos como particionar o DataFrame em Pyspark.

Partição

É possível particionar as linhas no quadro de dados usando a função da janela. Está disponível no Pyspark.SQL.janela módulo. Há duas etapas para particionar as linhas em um pyspark Dataframe.

Passos:

  1. Crie um quadro de dados Pyspark que tenha alguns valores semelhantes em pelo menos uma coluna.
  2. Partição Os dados usando o método Partionby () disponível na função da janela.

Sintaxe:

partição = janela.Partionby ("coluna")

Podemos solicitar os dados particionados com a coluna particionada ou qualquer outra coluna.

Vamos criar o quadro de dados.

Exemplo:

Aqui, criamos um pyspark DataFrame que possui 5 colunas - ['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2'] com 10 linhas.

Importar Pyspark
de Pyspark.SQL Import SparkSession
de Pyspark.SQL.Funções Importar *
Spark_App = SparkSession.construtor.nome do aplicativo('_').getorcreate ()
alunos = [(4, 'sravan', 23, 'php', 'testes'),
(4, 'sravan', 23, 'php', 'testing'),
(46, 'Mounika', 22, '.Net ',' html '),
(4, 'Deepika', 21, 'Oracle', 'html'),
(46, 'Mounika', 22, 'Oracle', 'Testing'),
(12, 'Chandrika', 22, 'Hadoop', 'C#'),
(12, 'Chandrika', 22, 'Oracle', 'Testing'),
(4, 'Sravan', 23, 'Oracle', 'C#'),
(4, 'Deepika', 21, 'Php', 'C#'),
(46, 'Mounika', 22, '.Net ',' teste ')
]
dataframe_obj = spark_app.CreatedataFrame (estudantes, ['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2']))
print ("---------- DataFrame real ----------")
dataframe_obj.mostrar()

Saída:

Função da janela Pyspark Variance ()

A variação () na função da janela é usada para retornar a variação em cada partição. Pode ser possível retornar variação após particionar o quadro de dados.

Sintaxe:

dataframe_obj.WithColumn ("Variação", Variação (Col ("Coluna")).sobre (partição))

Parâmetro:

variação (col ("coluna"))

Aqui, a função varince () toma o nome da coluna como o parâmetro. Ele retorna a variação nesta coluna em cada partição.

Adicionamos o resultado em uma coluna denominada variação usando a função withcolumn ().

Exemplo 1:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter a variação na coluna sujeito_id em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#import a variação e colé de Pyspark.SQL.funções
de Pyspark.SQL.funções Importar variação, COL
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return a variação na coluna Subjetion_id para cada partição
dataframe_obj.Withcolumn ("Variação", Variação (col ("Subvenço_id")).sobre (partição)).mostrar()

Saída:

Explicação:

O número total de partições é 4.

Partição 1:

O .A rede ocorreu duas vezes na primeira partição. A variação da coluna sujeito_ID é 0.0.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, a variação é nula.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

A variação da coluna sujeito_ID é 401.0.

Partição 4:

PHP ocorreu três vezes na quarta partição.

A variação da coluna sujeito_ID é 0.0.

Exemplo 2:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter a variação na coluna de idade em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#import a variação e colé de Pyspark.SQL.funções
de Pyspark.SQL.funções Importar variação, COL
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return A variação na coluna de idade para cada partição
dataframe_obj.WithColumn ("Variação", Variação (Col ("Idade")).sobre (partição)).mostrar()

Saída:

Explicação:

O número total de partições é 4.

Partição 1:

O .A rede ocorreu duas vezes na primeira partição. A variação da coluna de idade é 0.0.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, a variação é nula.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

A variação da coluna de idade é 0.666.

Partição 4:

PHP ocorreu três vezes na quarta partição.

A variação da coluna de idade é 1.333.

Função da janela pyspark stddev ()

O stddev () na função da janela é usado para retornar o desvio padrão em cada partição. Pode ser possível retornar o desvio padrão após a partição do quadro de dados.

Sintaxe:

dataframe_obj.Withcolumn ("Desvio padrão", Stddev (col ("coluna")).sobre (partição))

Parâmetro:

stddev (col ("coluna")))

Aqui, o stddev () toma o nome da coluna como o parâmetro. Ele retorna o desvio padrão nesta coluna em cada partição.

Adicionamos o resultado em uma coluna denominada desvio padrão usando a função withcolumn ().

Exemplo 1:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter o desvio padrão na coluna sujeito_id em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#import o stddev e col de Pyspark.SQL.funções
de Pyspark.SQL.Funções Importar Stddev, COL
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return O desvio de Satndard na coluna Subjetion_id para cada partição
dataframe_obj.WithColumn ("Desvio padrão", Stddev (col ("sujeito_id")).sobre (partição)).mostrar()

Saída:

Explicação:

O número total de partições é 4.

Partição 1:

O .A rede ocorreu duas vezes na primeira partição. O desvio padrão da coluna Subject_ID é 0.0.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, o desvio padrão é nulo.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O desvio padrão da coluna Subject_ID é 20.024984.

Partição 4:

PHP ocorreu três vezes na quarta partição.

O desvio padrão da coluna Subject_ID é 0.0.

Exemplo 2:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter o desvio padrão na coluna de idade em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#import o stddev e col de Pyspark.SQL.funções
de Pyspark.SQL.Funções Importar Stddev, COL
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return the Satndard Desvio na coluna de idade para cada partição
dataframe_obj.Withcolumn ("Desvio padrão", Stddev (col ("idade")).sobre (partição)).mostrar()

Saída:

Explicação:

O número total de partições é 4.

Partição 1:

O .A rede ocorreu duas vezes na primeira partição. O desvio padrão da coluna de idade é 0.0.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, o desvio padrão é nulo.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O desvio padrão da coluna de idade é 0.8164.

Partição 4:

PHP ocorreu três vezes na quarta partição.

O desvio padrão da coluna de idade é 1.1547.

Conclusão

Neste tutorial de particionamento Pyspark, aprendemos a retornar a variação em cada janela particionada usando a função varince () e o desvio padrão em cada janela particionada usando a função stddev (). Adicionamos o resultado ao quadro de dados existente como uma nova coluna. Certifique -se de importar a variação e o stddev do Pyspark.SQL.Módulo de funções.