PySpark Read.Parquet()

Pyspark Read Parquet



PySparkis kirjutab funktsioon write.parquet() DataFrame'i parketifaili ja read.parquet() loeb parketifaili PySpark DataFrame'i või mis tahes muusse andmeallikasse. Apache Sparki veergude kiireks ja tõhusaks töötlemiseks peame andmed tihendama. Andmete tihendamine säästab meie mälu ja kõik veerud teisendatakse tasapinnaliseks. See tähendab, et lame veerutaseme salvestusruum on olemas. Faili, mis neid salvestab, nimetatakse PARQUET-failiks.

Selles juhendis keskendume peamiselt parketifaili lugemisele/laadimisele PySpark DataFrame/SQL-i, kasutades funktsiooni read.parquet(), mis on saadaval klassis pyspark.sql.DataFrameReader.

Sisu teema:







Hankige parketifail



Lugege Parketifail PySpark DataFrame'i



Lugege PySpark SQL-i Parketifaili





Pyspark.sql.DataFrameReader.parquet()

Seda funktsiooni kasutatakse parketifaili lugemiseks ja selle laadimiseks PySpark DataFrame'i. See võtab parketifaili tee/failinime. Saame lihtsalt kasutada funktsiooni read.parquet(), kuna see on üldine funktsioon.

Süntaks:



Vaatame faili read.parquet() süntaksit:

spark_app.read.parquet(faili_nimi.parquet/path)

Esmalt installige PySparki moodul, kasutades käsku pip:

pip install pyspark

Hankige parketifail

Parketifaili lugemiseks on vaja andmeid, milles parketifail nendest andmetest genereeritakse. Selles osas näeme, kuidas PySpark DataFrame'ist parketifaili genereerida.

Loome 5 kirjega PySpark DataFrame'i ja kirjutame selle parketifaili 'industry_parquet'.

import pyspark

failist pyspark.sql importige SparkSession,Row

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

# looge andmeraamistik, mis salvestab valdkonna üksikasju

Industry_df = linuxhint_spark_app.createDataFrame([Row(Type= 'Põllumajandus' ,Piirkond= 'USA' ,
Hinnang= 'Kuum' ,Töötajad kokku= 100 ),

Rida(tüüp= 'Põllumajandus' ,Piirkond= 'India' ,Reiting= 'Kuum' ,Töötajad kokku= 200 ),

Rida(tüüp= 'Areng' ,Piirkond= 'USA' ,Reiting= 'soe' ,Töötajad kokku= 100 ),

Rida(tüüp= 'Haridus' ,Piirkond= 'USA' ,Reiting= 'lahe' ,Töötajad kokku= 400 ),

Rida(tüüp= 'Haridus' ,Piirkond= 'USA' ,Reiting= 'soe' ,Töötajad kokku= kakskümmend )

])

# Tegelik andmeraam

Industry_df.show()

# Kirjutage parketifaili tööstus_df

Industry_df.coalesce( 1 ).write.parkett( 'tööstus_parkett' )

Väljund:

See on DataFrame, mis sisaldab 5 kirjet.

Eelmise DataFrame'i jaoks luuakse parketifail. Siin on meie failinimi laiendiga 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet'. Kasutame seda faili kogu õpetuses.

Lugege Parketifail PySpark DataFrame'i

Parketifail on meil olemas. Lugeme seda faili funktsiooni read.parquet() abil ja laadime selle PySpark DataFrame'i.

import pyspark

failist pyspark.sql importige SparkSession,Row

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

# Lugege parketifaili objektiks dataframe_from_parquet.

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

# Kuvage dataframe_from_parquet-DataFrame

dataframe_from_parquet.show()

Väljund:

Kuvame DataFrame'i kasutades show() meetodit, mis loodi parketifailist.

SQL-päringud parketifailiga

Pärast DataFrame'i laadimist on võimalik luua SQL-i tabeleid ja kuvada DataFrame'is olevaid andmeid. Peame looma AJUTISE VAATE ja kasutama SQL-i käske, et tagastada kirjed DataFrame'ist, mis on loodud parketifailist.

Näide 1:

Looge ajutine vaade nimega 'Sektorid' ja kasutage DataFrame'i kirjete kuvamiseks käsku SELECT. Võite sellele viidata õpetus mis selgitab, kuidas Sparkis SQL-i vaadet luua.

import pyspark

failist pyspark.sql importige SparkSession,Row

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

# Lugege parketifaili objektiks dataframe_from_parquet.

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

# Loo vaade ülaltoodud parketifailist nimega 'Sektorid'

dataframe_from_parquet.createOrReplaceTempView( 'Sektorid' )

# Päring kõigi sektorite kirjete kuvamiseks

linuxhint_spark_app.sql( 'vali * sektoritest' ).show()

Väljund:

Näide 2:

Kasutades eelmist vaadet, kirjutage SQL-päring:

  1. Et kuvada kõik kirjed sektoritest, mis kuuluvad “Indiasse”.
  2. Et kuvada kõik kirjed sektoritest, kus töötaja on suurem kui 100.
# Päring kõigi 'Indiasse' kuuluvate sektorite kirjete kuvamiseks.

linuxhint_spark_app.sql( 'valige * sektoritest, kus Area='India'' ).show()

# Päring, et kuvada kõik kirjed sektoritest, mille töötaja on üle 100

linuxhint_spark_app.sql( 'valige * sektoritest, kus töötajaid kokku >100' ).show()

Väljund:

On ainult üks kirje pindalaga 'India' ja kaks kirjet töötajatega, mis on suuremad kui 100.

Lugege PySpark SQL-i Parketifaili

Esiteks peame käsu CREATE abil looma VIEW. Kasutades SQL-päringus märksõna „path”, saame parketifaili lugeda Spark SQL-i. Pärast teed peame määrama faili nime/asukoha.

Süntaks:

spark_app.sql( 'LOO Ajutine vaade vaate_nimi KASUTUSEL parketi VALIKUD (tee ' faili_nimi.parkett ')' )

Näide 1:

Looge ajutine vaade nimega 'Sektor2' ja lugege sinna parketifail. Funktsiooni sql() abil kirjutage valikupäring, et kuvada kõik vaates olevad kirjed.

import pyspark

failist pyspark.sql importige SparkSession,Row

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

# Lugege parketifail Spark-SQL-i

linuxhint_spark_app.sql( 'LOO AJUTINE VAATE Sektor2, KASUTADA parketivalikuid (tee' osa-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parkett ')' )

# Päring, et kuvada kõik Sector2 kirjed

linuxhint_spark_app.sql( 'vali * sektorist 2' ).show()

Väljund:

Näide 2:

Kasutage eelmist vaadet ja kirjutage päring, et kuvada kõik kirjed reitinguga 'Kuum' või 'Lahe'.

# Päring, et kuvada kõik Sector2 kirjed reitinguga - kuum või lahe.

linuxhint_spark_app.sql( 'valige * sektorist 2, kus Rating = 'Kuum' VÕI Hinnang = 'Lahe' ).show()

Väljund:

Seal on kolm plaati reitinguga “Kuum” või “Lahe”.

Järeldus

PySparkis kirjutab funktsioon write.parquet() DataFrame'i parketifaili. Funktsioon read.parquet() loeb parketifaili PySpark DataFrame'i või muusse andmeallikasse. Õppisime parketifaili lugema PySpark DataFrame'i ja PySparki tabelisse. Selle õpetuse osana arutasime ka seda, kuidas PySpark DataFrame'ist tabeleid luua ja andmeid WHERE-klausli abil filtreerida.