PySpark Read.Parquet()

Pyspark Read Parquet



PySparkissa write.parquet()-funktio kirjoittaa DataFramen parkettitiedostoon ja read.parquet() lukee parkettitiedoston PySpark DataFrameen tai mihin tahansa muuhun tietolähteeseen. Jotta voimme käsitellä Apache Sparkin sarakkeita nopeasti ja tehokkaasti, meidän on pakattava tiedot. Tietojen pakkaus säästää muistia ja kaikki sarakkeet muunnetaan tasatasoisiksi. Tämä tarkoittaa, että litteä saraketason tallennus on olemassa. Tiedosto, joka tallentaa nämä, tunnetaan nimellä PARQUET-tiedosto.

Tässä oppaassa keskitymme pääasiassa parkettitiedoston lukemiseen/lataamiseen PySpark DataFrame/SQL:ään käyttämällä read.parquet()-funktiota, joka on saatavilla pyspark.sql.DataFrameReader-luokassa.

Sisällön aihe:







Hanki parkettiviila



Lue parkettitiedosto PySpark DataFrameen



Lue parkettitiedosto PySpark SQL:ään





Pyspark.sql.DataFrameReader.parquet()

Tätä toimintoa käytetään parkettitiedoston lukemiseen ja sen lataamiseen PySpark DataFrameen. Se ottaa parkettitiedoston polun/tiedostonimen. Voimme yksinkertaisesti käyttää read.parquet()-funktiota, koska tämä on yleinen funktio.

Syntaksi:



Katsotaanpa read.parquet():n syntaksi:

spark_app.read.parquet(tiedoston_nimi.parketti/polku)

Asenna ensin PySpark-moduuli pip-komennolla:

pip asennus pyspark

Hanki parkettiviila

Parkettitiedoston lukemiseen tarvitaan tiedot, joissa parkettitiedosto on tuotettu tiedoista. Tässä osassa näemme kuinka luodaan parkettitiedosto PySpark DataFramesta.

Luodaan PySpark DataFrame 5 tietueella ja kirjoitetaan tämä 'industry_parquet' parkettitiedostoon.

tuonti pyspark

pyspark.sql:stä tuonti SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# luo tietokehys, joka tallentaa toimialan tiedot

Industry_df = linuxhint_spark_app.createDataFrame([Row(Type= 'Maatalous' ,Ala= 'USA' ,
Arvosana = 'Kuuma' ,Yhteensä_työntekijät= 100 ),

Rivi(Tyyppi= 'Maatalous' ,Ala= 'Intia' ,Arviointi= 'Kuuma' ,Yhteensä_työntekijät= 200 ),

Rivi(Tyyppi= 'Kehitys' ,Ala= 'USA' ,Arviointi= 'Lämmin' ,Yhteensä_työntekijät= 100 ),

Rivi(Tyyppi= 'Koulutus' ,Ala= 'USA' ,Arviointi= 'Viileä' ,Yhteensä_työntekijät= 400 ),

Rivi(Tyyppi= 'Koulutus' ,Ala= 'USA' ,Arviointi= 'Lämmin' ,Yhteensä_työntekijät= kaksikymmentä )

])

# Todellinen tietokehys

Industry_df.show()

# Kirjoita Industry_df parkettitiedostoon

Industry_df.coalesce( 1 ).write.parquet( 'teollisuus_parketti' )

Lähtö:

Tämä on DataFrame, joka sisältää 5 tietuetta.

Edelliselle DataFramelle luodaan parkettitiedosto. Tässä tiedostonimemme tunnisteella on 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet'. Käytämme tätä tiedostoa koko opetusohjelmassa.

Lue parkettitiedosto PySpark DataFrameen

Meillä on parkettiviila. Luetaan tämä tiedosto read.parquet()-funktiolla ja ladataan se PySpark DataFrameen.

tuonti pyspark

pyspark.sql:stä tuonti SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Lue parkettitiedosto dataframe_from_parquet-objektiin.

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

# Näytä dataframe_from_parquet-DataFrame

dataframe_from_parquet.show()

Lähtö:

Näytämme DataFramen käyttämällä show()-menetelmää, joka luotiin parkettitiedostosta.

SQL-kyselyt parkettitiedostolla

DataFrameen lataamisen jälkeen voi olla mahdollista luoda SQL-taulukoita ja näyttää DataFrame-kehyksessä olevat tiedot. Meidän on luotava TEMPORARY VIEW ja käytettävä SQL-komentoja palauttaaksemme tietueet DataFrame-kehyksestä, joka on luotu parkettitiedostosta.

Esimerkki 1:

Luo väliaikainen näkymä nimeltä 'Sektorit' ja käytä SELECT-komentoa näyttääksesi tietueet DataFramessa. Voit viitata tähän opetusohjelma joka selittää kuinka luoda NÄKYMÄ Sparkissa – SQL.

tuonti pyspark

pyspark.sql:stä tuonti SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Lue parkettitiedosto dataframe_from_parquet-objektiin.

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

# Luo näkymä yllä olevasta parkettitiedostosta nimeltä - 'Sektorit'

dataframe_from_parquet.createOrReplaceTempView( 'Sektorit' )

# Kysely näyttää kaikki sektorien tietueet

linuxhint_spark_app.sql( 'valitse * sektoreista' ).näytä()

Lähtö:

Esimerkki 2:

Kirjoita SQL-kysely käyttämällä edellistä näkymää:

  1. Näyttää kaikki tietueet sektoreista, jotka kuuluvat 'Intiaan'.
  2. Näytä kaikki tietueet sektoreista, joissa työntekijä on suurempi kuin 100.
# Kysely näyttää kaikki tietueet sektoreista, jotka kuuluvat 'Intiaan'.

linuxhint_spark_app.sql( 'valitse * sektoreista, joissa Alue='Intia'' ).näytä()

# Kysely näyttää kaikki tietueet sektoreista, joissa työntekijä on yli 100

linuxhint_spark_app.sql( 'valitse * sektoreista, joissa yhteensä_työntekijät>100' ).näytä()

Lähtö:

On vain yksi tietue, jonka alue on 'Intia', ja kaksi tietuetta, joissa työntekijöitä on suurempi kuin 100.

Lue parkettitiedosto PySpark SQL:ään

Ensin meidän on luotava VIEW käyttämällä CREATE-komentoa. Käyttämällä 'polku'-avainsanaa SQL-kyselyssä voimme lukea parkettitiedoston Spark SQL:lle. Polun jälkeen meidän on määritettävä tiedoston nimi/sijainti.

Syntaksi:

spark_app.sql( 'LUO VÄLIAIKAINEN NÄKYMÄ näkymän_nimi KÄYTTÄMÄLLÄ parkettiVAIHTOEHTOJA (polku ' tiedoston_nimi.parketti ')' )

Esimerkki 1:

Luo väliaikainen näkymä nimeltä 'Sector2' ja lue parkettitiedosto siihen. Kirjoita valintakysely sql()-funktion avulla näyttääksesi kaikki näkymässä olevat tietueet.

tuonti pyspark

pyspark.sql:stä tuonti SparkSession,Row

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Lue parkettitiedosto SparkSQL:ään

linuxhint_spark_app.sql( 'LUO VÄLIAIKAINEN NÄKYMÄ Sektori2 KÄYTTÄMÄLLÄ parkettivaihtoehtoja (polku' osa-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )

# Kysely näyttää kaikki sektorin2 tietueet

linuxhint_spark_app.sql( 'valitse * sektorista 2' ).näytä()

Lähtö:

Esimerkki 2:

Käytä edellistä NÄKYMÄA ja kirjoita kysely näyttääksesi kaikki tietueet, joiden luokitus on 'Kuuma' tai 'Cool'.

# Kysely näyttää kaikki sektorin 2 tietueet, joissa on luokitus - kuuma tai viileä.

linuxhint_spark_app.sql( 'valitse * sektorista 2, jossa Rating='Kuuma' TAI Rating='Cool'' ).näytä()

Lähtö:

On olemassa kolme levyä, joiden luokitus on 'Hot' tai 'Cool'.

Johtopäätös

PySparkissa write.parquet()-funktio kirjoittaa DataFramen parkettitiedostoon. Read.parquet()-funktio lukee parkettitiedoston PySpark DataFrameen tai mihin tahansa muuhun tietolähteeseen. Opimme lukemaan parkettitiedoston PySpark DataFrameen ja PySpark-taulukkoon. Osana tätä opetusohjelmaa keskustelimme myös taulukoiden luomisesta PySpark DataFrame -kehyksestä ja tietojen suodattamisesta WHERE-lauseen avulla.