Tutorial PySpark Dataframe - Programmazione PySpark con Dataframe



In questo blog tutorial di PySpark Dataframe, imparerai le trasformazioni e le azioni in Apache Spark con più esempi.

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:





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.

Dataframe-Pyspark-Dataframe-Tutorial



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.