Dataframes è una parola d'ordine nel settore al giorno d'oggi. Le persone tendono a usarlo con linguaggi popolari usati per l'analisi dei dati come Python, Scala e R.Inoltre, con l'evidente necessità di gestire analisi complesse e attività di munging per Big Data, Python per Spark o è diventata una delle competenze più ricercate nel settore oggi.Allora, perché tutti lo usano così tanto? Capiamo questo con il nostro Tutorial PySpark Dataframe blog. In questo blog tratterò i seguenti argomenti:
- Cosa sono i dataframe?
- Perché abbiamo bisogno di Dataframe?
- Caratteristiche dei dataframe
- PySpark Dataframe Sources
- Creazione di dataframe
- Pyspark Dataframes con FIFA World Cup & Superheroes Dataset
Tutorial PySpark Dataframe: cosa sono i dataframe?
I dataframe generalmente si riferiscono a una struttura di dati, che è di natura tabulare. Rappresenta le righe, ciascuna delle quali consiste in un numero di osservazioni. Le righe possono avere una varietà di formati di dati ( Eterogeneo ), mentre una colonna può avere dati dello stesso tipo di dati ( Omogeneo ). I data frame di solito contengono alcuni metadati oltre ai dati, ad esempio nomi di colonne e righe.
Possiamo dire che i dataframe non sono altro che una struttura di dati bidimensionale, simile a una tabella SQL o un foglio di calcolo. Ora andiamo avanti con questo tutorial PySpark Dataframe e capiamo perché esattamente abbiamo bisogno di Pyspark Dataframe?
Perché abbiamo bisogno di Dataframe?
1. Elaborazione di dati strutturati e semi-strutturati
Dataframesono progettati per elaborareper grande raccolta di dati strutturati e semi-strutturati . Le osservazioni in Spark DataFrame sono organizzate in colonne denominate, il che aiuta Apache Spark a comprendere lo schema di un DataFrame. Questo aiuta Spark a ottimizzare il piano di esecuzione su queste query. Può anche gestire Petabyte di dati.
2.S licing e cubatura
Frame di dati AI PI di solito supportano metodi elaborati per affettare e sminuzzare i dati. Includeoperazionens come 'selezionare' righe, colonne e celle per nome o per numero, filtrare righe, ecc. I dati statistici sono generalmente molto confusi e contengono molti valori mancanti e errati e violazioni dell'intervallo. Quindi una caratteristica di fondamentale importanza dei frame di dati è la gestione esplicita dei dati mancanti.
3.Fonti di dati
DataFrame supporta un'ampia gamma di formati di dati e origini, lo esamineremo più avanti in questo blog Tutorial di Pyspark Dataframe. Possono acquisire dati da varie fonti.
4.Supporto per più lingue
Ha il supporto API per diversi linguaggi come Python, R, Scala, Java,che ne facilita l'utilizzo da parte di persone con background di programmazione diversi.
Iscriviti al nostro canale youtube per ricevere nuovi aggiornamenti ..!
Caratteristiche dei dataframe
- I dataframe sono Distribuito in natura, il che lo rende struttura dei dati tollerante ai guasti e altamente disponibile.
- Valutazione pigra è una strategia di valutazione che contiene la valutazione di un'espressione fino a quando non è necessario il suo valore. Evita valutazioni ripetute. La valutazione lenta in Spark significa che l'esecuzione non verrà avviata fino a quando non viene attivata un'azione. In Spark, l'immagine della valutazione lenta arriva quando si verificano le trasformazioni di Spark.
- I dataframe sono Immutabile in natura. Per immutabile intendo che è un oggetto il cui stato non può essere modificato dopo che è stato creato.Ma possiamo trasformarcisuovalori applicandoun certotrasformazione, come negli RDD.
PySpark Dataframe Sources
I dataframe in Pyspark possono essere creati in diversi modi:
I dati possono essere caricati tramite un file CSV, JSON, XML o un file Parquet. Può anche essere creato utilizzando un file esistente RDD e tramite qualsiasi altro database, come Alveare o Cassandra anche. Può anche acquisire dati da HDFS o dal file system locale.
Creazione di dataframe
Andiamo avanti con questo blog tutorial di PySpark Dataframe e capiamo come creare Dataframe.
Creeremo istanze per dipendenti e dipartimenti.
da pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'stary') employee1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Dipendente ('Daniel', 'meng', 'daniel@stanford.edu', 120000) dipendente3 = Dipendente ('Muriel', Nessuno, 'muriel@waterloo.edu', 140000) dipendente4 = Dipendente ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) employee5 = Employee (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Employee [0]) print (dipendente3) department1 = Row (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', name =' DEV ')
Successivamente, creeremo un'istanza DepartmentWithEmployees da Employee e Department
departmentWithEmployees1 = Riga (reparto = reparto1, dipendenti = [dipendente1, dipendente2, dipendente5]) departmentWithEmployees2 = Riga (reparto = reparto2, dipendenti = [dipendente3, dipendente4]) departmentWithEmployees3 = Riga (reparto = reparto3, dipendenti = [dipendente1, dipendente4, dipendente3 ]) departmentWithEmployees4 = Row (department = department4, dipendenti = [dipendente2, dipendente3])
Creiamo il nostro Dataframe dall'elenco di righe
departmentsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) display (dframe) dframe.show ()
Pyspark Dataframes Esempio 1: Dataset della Coppa del Mondo FIFA
Qui abbiamo preso il set di dati dei giocatori della Coppa del Mondo FIFA. Caricheremo questi dati che sono in formato CSVin undataframe e poi impareremo le diverse trasformazioni e azioni che possono essere eseguite su questo dataframe.
Lettura dei dati dal file CSV
Carichiamo i dati da un file CSV. Qui useremo il file spark.read.csv metodo per caricare i dati in un dataframe fifa_df. Il metodo attuale è spark.read.format [csv / json] .
fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()
Schema di Dataframe
Per dare un'occhiata allo schema ie. la struttura del dataframe, useremo il printSchema metodo. Questo ci darà le diverse colonne nel nostro dataframe insieme al tipo di dati e alle condizioni nullable per quella particolare colonna.
fifa_df.printSchema ()
Nomi e conteggio delle colonne (righe e colonne)
Quando vogliamo dare un'occhiata ai nomi e al conteggio del numero di righe e colonne di un particolare Dataframe, utilizziamo i seguenti metodi.
fifa_df.columns // Nomi colonna fifa_df.count () // Row Count len (fifa_df.columns) // Column Count
37784 8
Descrivere una colonna particolare
Se vogliamo dare un'occhiata al riepilogo di una particolare colonna di un Dataframe, usiamo il descrive metodo. Questo metodo ci fornisce il riepilogo statistico della colonna data, se non specificato, fornisce il riepilogo statistico del dataframe.
casting double a int in java
fifa_df.describe ('Nome allenatore'). show () fifa_df.describe ('Posizione'). show ()
Selezione di più colonne
Se vogliamo selezionare colonne particolari dal dataframe, usiamo il Selezionare metodo.
fifa_df.select ('Nome giocatore', 'Nome allenatore'). show ()
Selezione di più colonne distinte
fifa_df.select ('Nome giocatore', 'Nome allenatore'). distintivi (). show ()
Filtraggio dei dati
Per filtrare i dati, in base alla condizione specificata, utilizziamo il file filtro comando. Qui stiamo filtrando il nostro dataframe in base alla condizione che Match ID deve essere uguale a 1096 e quindi stiamo calcolando quanti record / righe ci sono nell'output filtrato.
fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // per ottenere il conteggio
Filtraggio dei dati (più parametri)
Possiamo filtrare i nostri dati in base a più condizioni (AND o OR)
fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()
Ordinamento dei dati (OrderBy)
Per ordinare i dati utilizziamo il Ordinato da metodo. Per impostazione predefinita, ordina in ordine crescente, ma possiamo anche cambiarlo in ordine decrescente.
fifa_df.orderBy (fifa_df.MatchID) .show ()
PySpark Dataframes Esempio 2: Superheros Dataset
Caricamento dei dati
Qui caricheremo i dati nello stesso modo in cui abbiamo fatto prima.
Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)
Filtraggio dei dati
Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Male Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Female Heros Count
Raggruppamento dei dati
Raggruppa per viene utilizzato per raggruppare il dataframe in base alla colonna specificata. Qui, stiamo raggruppando il dataframe in base alla colonna Race e quindi con il contare funzione, possiamo trovare il conteggio della razza particolare.
Race_df = Superhero_df.groupby ('Race') .count () .show ()
Esecuzione di query SQL
Possiamo anche passare query SQL direttamente a qualsiasi dataframe, per questo dobbiamo creare una tabella dal dataframe usando il registerTempTable e quindi utilizzare il sqlContext.sql () per passare le query SQL.
Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('seleziona * da superhero_table'). Show ()
sqlContext.sql ('seleziona distinto (Eye_color) da superhero_table'). show ()
sqlContext.sql ('seleziona distinto (Eye_color) da superhero_table'). count ()
2. 3
sqlContext.sql ('seleziona max (Weight) da superhero_table'). show ()
E con questo, arriviamo alla fine di questo tutorial su PySpark Dataframe.
Quindi è questo, ragazzi!
Spero che abbiate un'idea di cosa sia PySpark Dataframe, perché viene utilizzato nel settore e delle sue caratteristiche in questo blog tutorial di PySpark Dataframe. Congratulazioni, non sei più un principiante di Dataframes. Se vuoi saperne di più su PySpark e comprendere i diversi casi d'uso del settore, dai un'occhiata al nostro Spark con Python e Tutorial di PySpark Blog.