PySpark Read.Parquet()

Pyspark Read Parquet



U PySparku funkcija write.parquet() zapisuje DataFrame u datoteku parketa, a read.parquet() čita datoteku parketa u PySpark DataFrame ili bilo koji drugi izvor podataka. Kako bismo brzo i učinkovito obradili stupce u Apache Sparku, moramo komprimirati podatke. Kompresija podataka štedi našu memoriju i svi se stupci pretvaraju u ravnu razinu. To znači da postoji pohrana na razini ravnog stupca. Datoteka koja ih pohranjuje poznata je kao datoteka PARQUET.

U ovom vodiču ćemo se uglavnom usredotočiti na čitanje/učitavanje datoteke parketa u PySpark DataFrame/SQL pomoću funkcije read.parquet() koja je dostupna u klasi pyspark.sql.DataFrameReader.

Tema sadržaja:







Nabavite turpiju za parket



Pročitajte datoteku parketa u PySpark DataFrame



Pročitajte datoteku parketa u PySpark SQL





Pyspark.sql.DataFrameReader.parquet()

Ova se funkcija koristi za čitanje datoteke parketa i njezino učitavanje u PySpark DataFrame. Uzima put/naziv datoteke parketa. Možemo jednostavno koristiti funkciju read.parquet() jer je to generička funkcija.

Sintaksa:



Pogledajmo sintaksu read.parquet():

spark_app.read.parquet(file_name.parquet/put)

Prvo instalirajte PySpark modul pomoću naredbe pip:

pip instaliraj pyspark

Nabavite turpiju za parket

Za čitanje parket-turpije potrebni su vam podaci u kojima je parket-turpija generirana iz tih podataka. U ovom ćemo dijelu vidjeti kako generirati datoteku parketa iz PySpark DataFramea.

Kreirajmo PySpark DataFrame s 5 zapisa i zapišimo to u datoteku parketa 'industry_parquet'.

uvoz pyspark

iz pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# kreirajte podatkovni okvir koji pohranjuje pojedinosti o industriji

industrija_df = linuxhint_spark_app.createDataFrame([Red(Tip= 'Poljoprivreda' ,Površina= 'SAD' ,
Ocjena= 'vruće' ,Ukupno_zaposlenih= 100 ),

Redak(Tip= 'Poljoprivreda' ,Površina= 'Indija' ,Ocjena= 'vruće' ,Ukupno_zaposlenih= 200 ),

Redak(Tip= 'Razvoj' ,Površina= 'SAD' ,Ocjena= 'Toplo' ,Ukupno_zaposlenih= 100 ),

Redak(Tip= 'Obrazovanje' ,Površina= 'SAD' ,Ocjena= 'Cool' ,Ukupno_zaposlenih= 400 ),

Redak(Tip= 'Obrazovanje' ,Površina= 'SAD' ,Ocjena= 'Toplo' ,Ukupno_zaposlenih= dvadeset )

])

# Stvarni DataFrame

industrija_df.show()

# Zapišiteindustriju_df u datoteku parketa

industrija_df.coalesce( 1 ).piši.parket( 'industrija_parket' )

Izlaz:

Ovo je DataFrame koji sadrži 5 zapisa.

Za prethodni DataFrame kreira se parketna datoteka. Ovdje je naziv naše datoteke s ekstenzijom 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet'. Ovu datoteku koristimo u cijelom vodiču.

Pročitajte datoteku parketa u PySpark DataFrame

Imamo turpiju za parket. Pročitajmo ovu datoteku pomoću funkcije read.parquet() i učitajmo je u PySpark DataFrame.

uvoz pyspark

iz pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Pročitajte datoteku parketa u objekt dataframe_from_parquet.

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

# Prikaži dataframe_from_parquet-DataFrame

dataframe_from_parquet.show()

Izlaz:

DataFrame prikazujemo pomoću metode show() koja je kreirana iz datoteke parketa.

SQL upiti s datotekom parketa

Nakon učitavanja u DataFrame, moguće je izraditi SQL tablice i prikazati podatke koji su prisutni u DataFrameu. Moramo kreirati PRIVREMENI PRIKAZ i upotrijebiti SQL naredbe za vraćanje zapisa iz DataFramea koji je kreiran iz datoteke parketa.

Primjer 1:

Stvorite privremeni prikaz pod nazivom 'Sektori' i koristite naredbu SELECT za prikaz zapisa u DataFrameu. Možete se pozvati na ovo tutorial koji objašnjava kako stvoriti VIEW u Spark – SQL.

uvoz pyspark

iz pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Pročitajte datoteku parketa u objekt dataframe_from_parquet.

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

# Napravite pogled iz gornje datoteke parketa pod nazivom - 'Sektori'

dataframe_from_parquet.createOrReplaceTempView( 'Sektori' )

# Upit za prikaz svih zapisa iz sektora

linuxhint_spark_app.sql( 'odaberite * iz sektora' ).pokazati()

Izlaz:

Primjer 2:

Koristeći prethodni VIEW, napišite SQL upit:

  1. Za prikaz svih zapisa iz sektora koji pripadaju “Indiji”.
  2. Za prikaz svih zapisa iz Sektora sa zaposlenikom većim od 100.
# Upit za prikaz svih zapisa iz sektora koji pripadaju 'Indiji'.

linuxhint_spark_app.sql( 'odaberite * iz sektora gdje je područje='Indija'' ).pokazati()

# Upit za prikaz svih zapisa iz sektora s više od 100 zaposlenika

linuxhint_spark_app.sql( 'odaberite * iz Sektora gdje Ukupno_zaposlenih>100' ).pokazati()

Izlaz:

Postoji samo jedan zapis s područjem koje je 'Indija' i dva zapisa s zaposlenicima većim od 100.

Pročitajte datoteku parketa u PySpark SQL

Prvo moramo kreirati VIEW pomoću naredbe CREATE. Koristeći ključnu riječ “path” unutar SQL upita, možemo pročitati datoteku parketa u Spark SQL. Nakon staze, moramo navesti naziv/lokaciju datoteke.

Sintaksa:

spark_app.sql( 'KREIRAJ PRIVREMENI PRIKAZ naziv_pogleda KORIŠĆENJEM OPCIJA parketa (staza ' naziv_datoteke.parket ')' )

Primjer 1:

Napravite privremeni prikaz pod nazivom “Sector2” i u njemu pročitajte datoteku parketa. Pomoću funkcije sql() napišite upit za odabir za prikaz svih zapisa koji su prisutni u prikazu.

uvoz pyspark

iz pyspark.sql import SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Savjet za Linux' ).getOrCreate()

# Pročitajte datoteku parketa u Spark-SQL

linuxhint_spark_app.sql( 'KREIRAJ PRIVREMENI PRIKAZ Sektor2 KORIŠĆENJEM OPCIJA parketa (staza ' dio-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )

# Upit za prikaz svih zapisa iz Sector2

linuxhint_spark_app.sql( 'odaberi * iz sektora 2' ).pokazati()

Izlaz:

Primjer 2:

Upotrijebite prethodni PREGLED i napišite upit za prikaz svih zapisa s ocjenom “Hot” ili “Cool”.

# Upit za prikaz svih zapisa iz sektora 2 s ocjenom - vruće ili hladno.

linuxhint_spark_app.sql( 'odaberite * iz Sektora 2 gdje je Ocjena='Hot' ILI Ocjena='Cool'' ).pokazati()

Izlaz:

Postoje tri zapisa s ocjenom 'Hot' ili 'Cool'.

Zaključak

U PySparku funkcija write.parquet() upisuje DataFrame u datoteku parketa. Funkcija read.parquet() čita datoteku parketa u PySpark DataFrame ili bilo koji drugi DataSource. Naučili smo kako čitati datoteku parketa u PySpark DataFrame iu PySpark tablicu. Kao dio ovog vodiča, također smo razgovarali o tome kako stvoriti tablice iz PySpark DataFramea i filtrirati podatke pomoću WHERE klauzule.