Pyspark - Função Min

Pyspark - Função Min
Depois de particionar as linhas no quadro de dados do Pyspark, é possível retornar os valores mínimo e máximo em cada partição. Ao usar algumas funções agregadas em uma janela de partição, é possível retornar o mínimo/máximo.

Primeiro, vemos como particionar o quadro de dados 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. Haverá 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 dos dados usando o método partitionby () disponível na função inwindow.

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

O min () na função da janela é usado para retornar o valor mínimo em cada partição. Pode ser possível retornar um valor mínimo após a partição do quadro de dados.

Sintaxe:

dataframe_obj.WithColumn ("Minimum", Min (col ("coluna")).sobre (partição))

Parâmetro:

min (col ("coluna"))

Aqui, a função min () toma o nome da coluna como o parâmetro. Ele retorna o mínimo de valores nesta coluna em cada partição.

Adicionamos o resultado em uma coluna chamada mínima usando a função withcolumn ().

Exemplo 1:

Agora, temos um DataFrame (criado anteriormente). Vamos dividi -lo com base na coluna da tecnologia1 e obter o valor mínimo da coluna sujeito_id em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#Import the min e col from pyspark.SQL.funções
de Pyspark.SQL.Funções Importar min, Col
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return O valor mínimo na coluna Subjetion_id para cada partição
dataframe_obj.Withcolumn ("Minimum", Min (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 valor mínimo na coluna Subject_id é 46.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, o valor mínimo é 12.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O valor mínimo na coluna Subject_id é 4.

Partição 4:

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

O valor mínimo na coluna Subject_id é 4.

Exemplo 2:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna da tecnologia1 e obter o valor mínimo da coluna de idade em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#Import the min e col from pyspark.SQL.funções
de Pyspark.SQL.Funções Importar min, Col
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return O valor mínimo na coluna de idade para cada partição
dataframe_obj.Withcolumn ("Minimum", Min (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 valor mínimo na coluna de idade é 22.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. O valor mínimo é 22.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O valor mínimo na coluna de idade é 21.

Partição 4:

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

O valor mínimo na coluna de idade é 21.

Função da janela Pyspark Max ()

O max () na função da janela é usado para retornar o valor máximo em cada partição. Pode ser possível retornar um valor máximo após a partição do quadro de dados.

Sintaxe:

dataframe_obj.Withcolumn ("Maximum", Max (col ("coluna")).sobre (partição))

Parâmetro:

max (col ("coluna"))

Aqui, a função max () toma o nome da coluna como o parâmetro. Ele retorna o máximo de valores nesta coluna em cada partição.

Adicionamos o resultado em uma coluna chamada máxima usando a função withcolumn ().

Exemplo 1:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter o valor máximo da coluna sujeito_id em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#Import The Max e Col da Pyspark.SQL.funções
de Pyspark.SQL.Funções Importar Max, Col
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return O valor máximo na coluna Subjetion_id para cada partição
dataframe_obj.WithColumn ("Maximum", Max (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 valor máximo na coluna Subject_id é 46.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, o valor máximo é 12.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O valor máximo na coluna Subject_id é 46.

Partição 4:

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

O valor máximo na coluna sujeito_id é 4.

Exemplo 2:

Agora, temos um DataFrame (criado anteriormente). Vamos particionar com base na coluna Technology1 e obter o valor máximo da coluna de idade em cada partição.

# importe a função da janela
de Pyspark.SQL.Janela de importação de janela
#Import The Max e Col da Pyspark.SQL.funções
de Pyspark.SQL.Funções Importar Max, Col
#Partition O DataFrame com base nos valores na coluna Technology1
partição = janela.partitionby ("tecnologia1")
print ("---------- Particionado DataFrame ----------")
#Return O valor máximo na coluna de idade para cada partição
dataframe_obj.Withcolumn ("Maximum", Max (Col ("Age")).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 valor máximo na coluna de idade é 22.

Partição 2:

Hadoop ocorreu uma vez na segunda partição. Então, o valor máximo é 22.

Partição 3:

Oracle ocorreu quatro vezes na terceira partição.

O valor máximo na coluna de idade é 23.

Partição 4:

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

O valor máximo na coluna de idade é 23.

Conclusão

Neste tutorial de particionamento Pyspark, aprendemos a retornar os valores mínimos em cada janela particionada usando a função min () e os valores máximos em cada janela particionada usando a função max (). Adicionamos o resultado ao quadro de dados existente como uma nova coluna. Certifique -se de ter que importar o min e o máximo do Pyspark.SQL.Módulo de funções.