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 de classificação ().
É 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.
Função da janela de classificação ()
Classificação 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. No entanto, para a próxima linha, a classificação será o seguinte número contando das linhas amarradas (linhas com a mesma classificação).
Aqui, os valores são da coluna onde especificamos a coluna dentro ordenar por(). Então, com base nos valores nesta coluna, classificação() verifica e atribui o número da classificação.
O principal é classificação() não está disponível diretamente. Temos que importá -lo do Pyspark.SQL.funções módulo.
Sintaxe para importar módulo
de Pyspark.SQL.funções Importar classificaçãoCaso contrário, também podemos fazer assim para importar todos os métodos deste módulo.
de Pyspark.SQL.Funções Importar *Devemos seguir as etapas abaixo para executar a partição e aplicar a classificação em dados particionados.
Passos:
Sintaxe:
partição = janela.Partionby ("coluna").ordem ("coluna") Podemos solicitar os dados particionados com a coluna particionada ou qualquer outra coluna.
Agora, usando o sobre() função nas linhas particionadas, você pode usar o classificação() função. Então, adicionaremos uma coluna para armazenar o número da linha usando o withcolumn () função.
Sintaxe:
Então, o nome especifica o nome da linha aqui, e DataFrame_OBJ é o nosso Pyspark Dataframe. Vamos implementar o código.
Exemplo 1: Rank Technology1 por sujeito_id
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.
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 de classificação () retorna a mesma classificação 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:
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 todos os php.
Exemplo 2: Rank Technology2 por sujeito_id
Aqui, particionaremos as linhas com base em Technology2 Usando a função da janela. Finalmente, daremos fileiras às linhas com base na coluna Subject_id em todas as partições, adicionando uma nova coluna chamada “CLASSIFICAÇÃO”.
(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. Os dois primeiros valores na coluna sujeito_id são os mesmos. Portanto, a função Rank () retorna a mesma classificação 1 para os dois primeiros C#e, para o terceiro C#, a classificação é 3.
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 a classificação 2 é atribuída para o segundo.
Partição 3:
Exemplo 3: Rank Technology2 por idade
Aqui, particionaremos as linhas com base em Technology2 Usando a função da janela.
Finalmente, daremos fileiras às linhas com base na coluna AGE em todas as partições, adicionando uma nova coluna chamada “CLASSIFICAÇÃO”.
(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 de idade.
Partições totais: 3
Partição 1:
C# ocorreu três vezes na primeira partição. E todos os valores na coluna de idade são diferentes. Portanto, a função de classificação () retorna os ranks 1, 2 e 3 para 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 de classificação () retorna os ranks 1 e 2 para dois valores HTML.
Partição 3:
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 de classificação (). Classificação em Pyspark é uma função de janela que define as fileiras para as linhas em cada partição. Certifique -se de usar este comando enquanto usa esta função de Pyspark.SQL.funções Importar classificação.