PySpark Read.Parquet()

Pyspark Read Parquet



In PySpark, la funzione write.parquet() scrive DataFrame nel file parquet e read.parquet() legge il file parquet in PySpark DataFrame o in qualsiasi altro DataSource. Per elaborare le colonne in Apache Spark in modo rapido ed efficiente, è necessario comprimere i dati. La compressione dei dati salva la nostra memoria e tutte le colonne vengono convertite in un livello piatto. Ciò significa che l'archiviazione a livello di colonna piatta esiste. Il file che li memorizza è noto come file PARQUET.

In questa guida, ci concentreremo principalmente sulla lettura/caricamento del file parquet in PySpark DataFrame/SQL utilizzando la funzione read.parquet() disponibile nella classe pyspark.sql.DataFrameReader.

Argomento dei contenuti:







Ottieni il file del parquet



Leggere il file Parquet nel dataframe PySpark



Leggere il file Parquet in PySpark SQL





Pyspark.sql.DataFrameReader.parquet()

Questa funzione viene utilizzata per leggere il file parquet e caricarlo nel PySpark DataFrame. Prende il percorso/nome file del file parquet. Possiamo semplicemente usare la funzione read.parquet() poiché questa è la funzione generica.

Sintassi:



Vediamo la sintassi di read.parquet():

spark_app.read.parquet(nome_file.parquet/percorso)

Innanzitutto, installa il modulo PySpark usando il comando pip:

pip installa pyspark

Ottieni il file del parquet

Per leggere un file parquet, sono necessari i dati in cui il file parquet è generato da quei dati. In questa parte vedremo come generare un file parquet dal PySpark DataFrame.

Creiamo un PySpark DataFrame con 5 record e scriviamolo nel file parquet 'industry_parquet'.

importa pyspark

da pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Suggerimento per Linux' ).getOrCreate()

# crea il dataframe che memorizza i dettagli del settore

industry_df = linuxhint_spark_app.createDataFrame([Row(Type= 'Agricoltura' ,Zona= 'STATI UNITI D'AMERICA' ,
Voto= 'Caldo' ,Totale_dipendenti= 100 ),

Riga(Tipo= 'Agricoltura' ,Zona= 'India' ,Valutazione= 'Caldo' ,Totale_dipendenti= 200 ),

Riga(Tipo= 'Sviluppo' ,Zona= 'STATI UNITI D'AMERICA' ,Valutazione= 'Caldo' ,Totale_dipendenti= 100 ),

Riga(Tipo= 'Formazione scolastica' ,Zona= 'STATI UNITI D'AMERICA' ,Valutazione= 'Freddo' ,Totale_dipendenti= 400 ),

Riga(Tipo= 'Formazione scolastica' ,Zona= 'STATI UNITI D'AMERICA' ,Valutazione= 'Caldo' ,Totale_dipendenti= venti )

])

# DataFrame effettivo

industria_df.show()

# Scrivere industry_df nel file parquet

industria_df.coalesce( 1 ).write.parquet( 'industria_parquet' )

Produzione:

Questo è il DataFrame che contiene 5 record.

Viene creato un file parquet per il DataFrame precedente. Qui, il nome del nostro file con estensione è 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet'. Usiamo questo file nell'intero tutorial.

Leggere il file Parquet nel dataframe PySpark

Abbiamo la cartella del parquet. Leggiamo questo file usando la funzione read.parquet() e carichiamolo nel PySpark DataFrame.

importa pyspark

da pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Suggerimento per Linux' ).getOrCreate()

# Legge il file parquet nell'oggetto dataframe_from_parquet.

dataframe_from_parquet=linuxhint_spark_app.read.parquet( 'parte-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet' )

# Visualizza il dataframe_from_parquet-DataFrame

dataframe_dal_parquet.show()

Produzione:

Visualizziamo il DataFrame usando il metodo show() che è stato creato dal file parquet.

Query SQL con file parquet

Dopo il caricamento nel DataFrame, è possibile creare le tabelle SQL e visualizzare i dati presenti nel DataFrame. Dobbiamo creare una VISUALIZZAZIONE TEMPORANEA e utilizzare i comandi SQL per restituire i record dal DataFrame che viene creato dal file parquet.

Esempio 1:

Creare una vista temporanea denominata 'Sectors' e utilizzare il comando SELEZIONA per visualizzare i record nel DataFrame. Puoi fare riferimento a questo tutorial che spiega come creare una VIEW in Spark – SQL.

importa pyspark

da pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Suggerimento per Linux' ).getOrCreate()

# Legge il file parquet nell'oggetto dataframe_from_parquet.

dataframe_from_parquet=linuxhint_spark_app.read.parquet( 'parte-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet' )

# Crea vista dal file parquet sopra denominato - 'Settori'

dataframe_from_parquet.createOrReplaceTempView( 'Settori' )

# Query per visualizzare tutti i record dei settori

linuxhint_spark_app.sql( 'seleziona * da Settori' ).spettacolo()

Produzione:

Esempio 2:

Usando la VIEW precedente, scrivi la query SQL:

  1. Per visualizzare tutti i record dei Settori che appartengono a “India”.
  2. Per visualizzare tutti i record dei Settori con un dipendente maggiore di 100.
# Query per visualizzare tutti i record dei Settori appartenenti a 'India'.

linuxhint_spark_app.sql( 'seleziona * da Settori dove Area='India'' ).spettacolo()

# Query per visualizzare tutti i record dei settori con dipendenti maggiori di 100

linuxhint_spark_app.sql( 'seleziona * da Settori dove Totale_dipendenti>100' ).spettacolo()

Produzione:

C'è solo un record con area che è 'India' e due record con dipendenti superiori a 100.

Leggere il file Parquet in PySpark SQL

Per prima cosa, dobbiamo creare una VIEW usando il comando CREATE. Usando la parola chiave 'path' all'interno della query SQL, possiamo leggere il file parquet in Spark SQL. Dopo il percorso, dobbiamo specificare il nome file/la posizione del file.

Sintassi:

spark_app.sql( 'CREA VISTA TEMPORANEA nome_vista UTILIZZANDO OPZIONI parquet (percorso ' nome_file.parquet ')' )

Esempio 1:

Crea una vista temporanea denominata 'Sector2' e leggi il file parquet in essa. Utilizzando la funzione sql(), scrivere la query select per visualizzare tutti i record presenti nella vista.

importa pyspark

da pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Suggerimento per Linux' ).getOrCreate()

# Legge il file parquet in Spark-SQL

linuxhint_spark_app.sql( 'CREA VISTA TEMPORANEA Settore2 UTILIZZANDO LE OPZIONI parquet (percorso ' parte-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )

# Query per visualizzare tutti i record dal Sector2

linuxhint_spark_app.sql( 'seleziona * da Settore2' ).spettacolo()

Produzione:

Esempio 2:

Usa la VISUALIZZAZIONE precedente e scrivi la query per visualizzare tutti i record con la valutazione di 'Hot' o 'Cool'.

# Query per visualizzare tutti i record del Sector2 con Rating-Hot o Cool.

linuxhint_spark_app.sql( 'select * from Sector2 where Rating='Hot' OR Rating='Cool'' ).spettacolo()

Produzione:

Ci sono tre record con la valutazione di 'Hot' o 'Cool'.

Conclusione

In PySpark, la funzione write.parquet() scrive il DataFrame nel file parquet. La funzione read.parquet() legge il file parquet nel PySpark DataFrame o in qualsiasi altro DataSource. Abbiamo imparato a leggere il file parquet nel PySpark DataFrame e nella tabella PySpark. Come parte di questo tutorial, abbiamo anche discusso su come creare le tabelle da PySpark DataFrame e filtrare i dati utilizzando la clausola WHERE.