Il rango parte da 1 e se qualche valori è uguali in due o più righe, lo stesso rango verrà assegnato.
Qui, i valori provengono dalla colonna in cui abbiamo specificato la colonna all'interno dell'ordine (). Quindi, in base ai valori in questa colonna, Dense_rank () controlla i valori e assegna il numero di rango.
La cosa principale è che Dense_rank () non è disponibile direttamente. Dobbiamo importarlo dal pyspark.SQL.funzioni modulo.
In PysPark, è possibile partizione delle righe nel frame dati utilizzando la funzione finestra. È disponibile in pyspark.SQL.finestra modulo.
Il vantaggio della partizione è ottenere coerenza e raggruppamento dei dati. Dopo aver eseguito la partizione, possiamo impostare i ranghi sulle righe in ciascuna partizione usando la funzione Dense_rank ().
È possibile partizione delle righe in un telaio di dati in base ai valori in una colonna particolare. Quindi, tutti i valori simili sono impostati su ogni partizione.
Dobbiamo seguire i seguenti passaggi per partizionare e applicare Dense_rank sui dati partizionati:
Passaggi:
Implementamoci il codice.
Esempio 1
Qui, creeremo un frame dati pyspark che ha 5 colonne: ['soggetto_id', 'name', 'age', 'technology1', 'technology2'] con 10 righe e partizione le righe basate su Tecnologia1 Usando la funzione della finestra.
Infine, daremo gradi alle righe in tutte le partizioni aggiungendo una nuova colonna chiamata "Rango denso".
importare pysparkProduzione:
Spiegazione
Il primo output rappresenta i dati effettivi presenti nel frame dati.
Nel secondo output, la partizione viene eseguita in base al Tecnologia1 colonna.
Partizioni totali: - 4
Partizione 1:
.La rete si è verificata due volte nella prima partizione. I valori nella colonna soggetto_id sono gli stessi. Quindi la funzione Dense_rank () restituisce lo stesso grado-1 per entrambi .Valori netti.
Partizione 2:
Hadoop si è verificato una volta nella seconda partizione. Quindi, il grado è 1.
Partizione 3:
Oracle si è verificato quattro volte nella terza partizione.
Per i primi due Oracle, i valori soggetti_id sono gli stessi, quindi per entrambi, viene assegnato il grado 1.
Per il terzo oracolo, il grado è 2.
Per l'ultimo oracolo, il grado è 3.
Partizione 4:
PHP si è verificato tre volte nella quarta partizione e i valori nella colonna soggetto_id sono gli stessi per tutti. Quindi il rango è 1 per tutti i PHP.
Esempio 2
Qui, usando la funzione della finestra, partizioneremo le righe basate su Tecnologia2.
Infine, classificheremo le righe in base alla colonna soggetto_id in tutte le partizioni aggiungendo una nuova colonna denominata "Rango denso".
(Se non hai creato il frame dati PysPark, crealo utilizzando il primo esempio.)
# Importa la funzione della finestraProduzione:
Spiegazione
L'output rappresenta i dati effettivi presenti nel frame dati.
Nel secondo output, la partizione viene eseguita in base al Tecnologia2 colonna e ordinati in base alla colonna soggetto_id.
Partizioni totali: - 3
Partizione 1:
C# si è verificato tre volte nella prima partizione. Inoltre, i primi due valori nella colonna soggetto_id sono gli stessi. Quindi, la funzione Dense_rank () restituisce lo stesso grado-1 per i primi due C#e per il terzo C#, il grado è 2.
Partizione 2:
HTML si è verificato due volte nella seconda partizione e i valori soggetti_id sono diversi per questi due. Quindi, il grado 1 è assegnato per il primo HTML e il grado 2 è assegnato per il secondo.
Partizione 3:
I test si sono verificati cinque volte nella terza partizione.
Per i primi due test, i valori soggetti_id sono gli stessi, quindi per entrambi, viene assegnato il grado 1.
Per il terzo test, il grado è 2.
Per l'ultimo test, il grado era 3.
Esempio 3
Qui, usando la funzione della finestra, partizioneremo le righe basate su Tecnologia2.
Infine, classificheremo le righe in base alla colonna di età in tutte le partizioni aggiungendo una nuova colonna denominata "Rango denso".
(Se non hai creato il frame dati PysPark, crealo utilizzando il primo esempio.)
# Importa la funzione della finestraProduzione:
Spiegazione
L'output rappresenta i dati effettivi presenti nel frame dati.
Nel secondo output, la partizione viene eseguita in base alla colonna Technology2 e ordinata in base alla colonna di età.
Partizioni totali: - 3
Partizione 1:
C# si è verificato tre volte nella prima partizione. Tutti i valori nella colonna di età sono diversi. Quindi, la funzione Dense_rank () restituisce i ranghi 1,2 e 3 per tre valori C#.
Partizione 2:
HTML si è verificato due volte nella prima partizione. Tutti i valori nella colonna di età sono diversi. Quindi la funzione Dense_rank () restituisce i ranghi 1 e 2 per due valori HTML.
Partizione 3:
I test si sono verificati cinque volte nella terza partizione.
Per i primi tre valori di test, i valori di età sono gli stessi. Quindi, per tre, è assegnato il grado 1.
I valori di età per il quarto e il quinto test sono gli stessi, quindi il grado 2 viene dato ad entrambi.
Conclusione
Abbiamo discusso di partizionamento delle righe nel Frame di dati PysPark e di impostare il grado in ogni partizione utilizzando la funzione Dense_Rank (). Dense_rank in pyspark è una funzione finestra che imposta i ranghi sulle righe in ogni partizione. Il rango parte da 1 e se qualche valori è uguali in due o più righe, lo stesso rango verrà assegnato.