A classificação começa em 1 e, se algum valores forem iguais em duas ou mais linhas, a mesma classificação será atribuída.
Aqui, os valores são da coluna em que especificamos a coluna dentro do orderby (). Portanto, com base nos valores nesta coluna, dense_rank () verifica os valores e atribui o número da classificação.
O principal é que dense_rank () não está disponível diretamente. Temos que importá -lo do Pyspark.SQL.funções módulo.
No Pyspark, é possível particionar as linhas no quadro de dados usando a função da janela. Está disponível no Pyspark.SQL.janela módulo.
A vantagem da partição é alcançar a consistência e agrupamento de dados. Depois de executar a partição, podemos definir as fileiras para as linhas em cada partição usando a função dense_rank ().
É possível particionar as linhas em um quadro de dados com base nos valores em uma coluna específica. Então, todos os valores semelhantes são definidos para cada partição.
Devemos seguir as etapas a seguir para particionar e aplicar dense_rank em dados particionados:
Passos:
Vamos implementar o código.
Exemplo 1
Aqui, criaremos um pyspark DataFrame que possui 5 colunas: ['sujeito_id', 'nome', 'idade', 'tecnologia1', 'tecnologia2'] com 10 linhas e particionar as linhas com base em Technology1 Usando a função da janela.
Finalmente, daremos fileiras às linhas em todas as partições adicionando uma nova coluna chamada “Classificação densa”.
Importar PysparkSaída:
Explicação
A primeira saída representa os dados reais presentes no DataFrame.
Na segunda saída, a partição é feita com base no Technology1 coluna.
Partições totais: - 4
Partição 1:
.A rede ocorreu duas vezes na primeira partição. Os valores na coluna sujeito_id são os mesmos. Portanto, a função dense_rank () retorna o mesmo rank-1 para ambos .Valores líquidos.
Partição 2:
Hadoop ocorreu uma vez na segunda partição. Então, a classificação é 1.
Partição 3:
Oracle ocorreu quatro vezes na terceira partição.
Para os dois primeiros Oracle, os valores sujeitos_id são os mesmos, então para ambos, a classificação-1 é atribuída.
Para o terceiro oráculo, a classificação é 2.
Para o último Oracle, a classificação é 3.
Partição 4:
PHP ocorreu três vezes na quarta partição, e os valores na coluna Subject_id são os mesmos para todos. Portanto, a classificação é 1 para todo o PHP.
Exemplo 2
Aqui, usando a função da janela, particionaremos as linhas com base em Technology2.
Finalmente, classificaremos as linhas com base na coluna Subject_id em todas as partições adicionando uma nova coluna chamada “Classificação densa”.
(Se você não criou o Pyspark Dataframe, crie -o usando o primeiro exemplo.)
# importe a função da janelaSaída:
Explicação
A saída representa os dados reais presentes no DataFrame.
Na segunda saída, a partição é feita com base no Technology2 coluna e ordenada com base na coluna Subjetion_id.
Partições totais: - 3
Partição 1:
C# ocorreu três vezes na primeira partição. Além disso, os dois primeiros valores na coluna sujeito_id são os mesmos. Portanto, a função dense_rank () retorna o mesmo rank-1 para os dois primeiros C#e, para o terceiro C#, a classificação é 2.
Partição 2:
HTML ocorreu duas vezes na segunda partição, e os valores de sujeito são diferentes para esses dois. Portanto, a classificação-1 é atribuída para o primeiro HTML, e o Rank-2 é atribuído para o segundo.
Partição 3:
Os testes ocorreram cinco vezes na terceira partição.
Para os dois primeiros testes, os valores sujeitos_id são os mesmos; portanto, para ambos, a classificação-1 é atribuída.
Para o terceiro teste, a classificação é 2.
Para o último teste, a classificação foi 3.
Exemplo 3
Aqui, usando a função da janela, particionaremos as linhas com base em Technology2.
Finalmente, classificaremos as linhas com base na coluna AGE em todas as partições, adicionando uma nova coluna chamada “Classificação densa”.
(Se você não criou o Pyspark Dataframe, crie -o usando o primeiro exemplo.)
# importe a função da janelaSaída:
Explicação
A saída representa os dados reais presentes no DataFrame.
Na segunda saída, a partição é feita com base na coluna Technology2 e ordenada com base na coluna AGE.
Partições totais: - 3
Partição 1:
C# ocorreu três vezes na primeira partição. Todos os valores na coluna de idade são diferentes. Portanto, a função dense_rank () retorna as classificações de 1,2 e 3 por três valores de C#.
Partição 2:
HTML ocorreu duas vezes na primeira partição. Todos os valores na coluna de idade são diferentes. Portanto, a função dense_rank () retorna os ranks 1 e 2 para dois valores HTML.
Partição 3:
Os testes ocorreram cinco vezes na terceira partição.
Para os três primeiros valores de teste, os valores da idade são os mesmos. Então, para três, o Rank-1 é atribuído.
Os valores da idade para o quarto e o quinto testes são os mesmos, então a classificação-2 é dada a ambos.
Conclusão
Discutimos particionando as linhas no quadro de dados Pyspark e definindo a classificação em cada partição usando a função de janela dense_rank (). Dense_rank em Pyspark é uma função de janela que define as fileiras para as linhas em cada partição. A classificação começa em 1 e, se algum valores forem iguais em duas ou mais linhas, a mesma classificação será atribuída.