Pyspark Partition Un frame di dati
È possibile partizione delle righe nel frame dati utilizzando la funzione della finestra. È disponibile in pyspark.SQL.finestra modulo. Ci saranno due passaggi per partizionare le righe in un frame dati pyspark.
Passi
Sintassi
partizione = finestra.Partitionby ("colonna")Possiamo ordinare i dati partizionati con la colonna partizionata o qualsiasi altra colonna. Creiamo il frame dati.
Esempio
Qui, creeremo un frame dati pyspark che ha 5 colonne: ["soggetto_id", "nome", "age", "tecnologia1", "tecnologia2"] con 10 righe.
Produzione:
Funzione di finestra Pyspark Sum ()
La somma () nella funzione della finestra viene utilizzata per restituire la somma totale dei valori in ciascuna partizione. Quindi, è possibile restituire una somma dopo aver diviso il frame dati.
Sintassi
dataframe_obj.WithColumn ("Sum", Sum (Col ("Colonna")).Over (partizione))Parametro:
somma (col ("colonna"))Qui, il somma() La funzione prende il nome della colonna come parametro. Quindi, restituisce la somma dei valori in questa colonna in ogni partizione. Aggiungiamo il risultato in una colonna di somma usando il withColumn () funzione.
Esempio 1
Ora abbiamo un frame dati (creato sopra). Partizione in base alla colonna Technology1 e otteniamo la somma totale di tutti i valori nella colonna soggetto_id in ogni partizione.
Produzione:
Spiegazione
Partizioni totali: 4
Partizione 1:
.La rete si è verificata due volte nella prima partizione. E la somma dei valori soggetti_id è 46+46 = 92.
Partizione 2:
Hadoop si è verificato una volta nella seconda partizione. Quindi, la somma è 12.
Partizione 3:
Oracle si è verificato quattro volte nella terza partizione.
E la somma dei valori soggetti_id è 4+46+12+4 = 66.
Partizione 4:
PHP si è verificato tre volte nella quarta partizione.
E la somma dei valori soggetti_id è 4+4+4 = 12.
Esempio 2
Ora abbiamo un frame dati (creato sopra). Partitioniamo in base alla colonna Technology1 e otteniamo la somma totale di tutti i valori nella colonna di età in ogni partizione.
Produzione:
Spiegazione
Partizioni totali: 4
Partizione 1:
.La rete si è verificata due volte nella prima partizione. E la somma dei valori di età è 22+22 = 92.
Partizione 2:
Hadoop si è verificato una volta nella seconda partizione. Quindi, la somma è 22.
Partizione 3:
Oracle si è verificato quattro volte nella terza partizione.
E la somma dei valori di età è 21+22+22+23 = 88.
Partizione 4:
PHP si è verificato tre volte nella quarta partizione.
E la somma dei valori di età è 23+23+21 = 67.
Funzione di finestra Pyspark Avg ()
L'avg () nella funzione della finestra viene utilizzato per restituire la media totale dei valori in ciascuna partizione. Quindi, è possibile restituire la media dopo aver diviso il frame dati.
Sintassi
dataframe_obj.WithColumn ("Medio", AVG (col ("colonna")).Over (partizione))Parametro:
AVG (col ("colonna"))Qui, avg () prende il nome della colonna come parametro. Quindi, restituisce la media dei valori in questa colonna in ogni partizione. Stiamo aggiungendo il risultato nella colonna media usando il withColumn () funzione.
Esempio 1
Ora abbiamo un frame dati (creato sopra). Partizioni in base alla colonna Technology1 e otteniamo la media totale di tutti i valori nella colonna soggetto_id in ogni partizione.
Produzione:
Spiegazione
Partizioni totali: 4
Partizione 1:
.La rete si è verificata due volte nella prima partizione. E la media dei valori soggetti_id è (46+46)/2 = 46.0.
Partizione 2:
Hadoop si è verificato una volta nella seconda partizione. Quindi, la media è 12.0.
Partizione 3:
Oracle si è verificato quattro volte nella terza partizione.
E la media dei valori soggetti_id è (4+46+12+4)/4 = 16.5.
Partizione 4:
PHP si è verificato tre volte nella quarta partizione.
E la media dei valori soggetti_id è (4+4+4)/3 = 4.0.
Esempio 2
Ora abbiamo un frame dati (creato sopra). Partizioniamo in base alla colonna Technology1 e otteniamo la media totale di tutti i valori nella colonna di età in ogni partizione.
Produzione:
Spiegazione
Partizioni totali: 4
Partizione 1:
.La rete si è verificata due volte nella prima partizione. E il valore medio di età è (22+22)/2 = 22.0.
Partizione 2:
Hadoop si è verificato una volta nella seconda partizione. Quindi, la media è 22.0.
Partizione 3:
Oracle si è verificato quattro volte nella terza partizione.
E l'età media è (21+22+22+23)/4 = 22.0.
Partizione 4:
PHP si è verificato tre volte nella quarta partizione.
E il valore medio di età è (23+23+21)/3 = 22.333.
Conclusione
In questo tutorial di partizionamento Pyspark, abbiamo visto come restituire la somma dei valori in ciascuna finestra partizionata usando il somma() funzione e i valori medi in ciascuna finestra partizionata usando la funzione AVG (). Abbiamo aggiunto il risultato al frame dati esistente come nuova colonna. È anche possibile ottenere la media simile a avg () funzione usando Significare(). Le cose che importano significano pyspark.SQL.funzioni modulo e assicurati semplicemente di dover importare somma e media dallo stesso modulo.