PySpark Read.Parquet()

Pyspark Read Parquet



PySparkలో, write.parquet() ఫంక్షన్ డేటాఫ్రేమ్‌ను పార్క్వెట్ ఫైల్‌కు వ్రాస్తుంది మరియు read.parquet() పార్క్వెట్ ఫైల్‌ను PySpark DataFrame లేదా ఏదైనా ఇతర డేటాసోర్స్‌కి చదువుతుంది. అపాచీ స్పార్క్‌లోని నిలువు వరుసలను త్వరగా మరియు సమర్ధవంతంగా ప్రాసెస్ చేయడానికి, మేము డేటాను కుదించవలసి ఉంటుంది. డేటా కంప్రెషన్ మన మెమరీని ఆదా చేస్తుంది మరియు అన్ని నిలువు వరుసలు ఫ్లాట్ స్థాయికి మార్చబడతాయి. అంటే ఫ్లాట్ కాలమ్ స్థాయి నిల్వ ఉంది. వీటిని నిల్వ చేసే ఫైల్‌ని PARQUET ఫైల్ అంటారు.

ఈ గైడ్‌లో, pyspark.sql.DataFrameReader క్లాస్‌లో అందుబాటులో ఉన్న read.parquet() ఫంక్షన్‌ని ఉపయోగించి PySpark DataFrame/SQL లోకి పార్కెట్ ఫైల్‌ను చదవడం/లోడ్ చేయడంపై మేము ప్రధానంగా దృష్టి పెడతాము.

విషయాల అంశం:







పార్కెట్ ఫైల్ పొందండి



PySpark DataFrameకి Parquet ఫైల్‌ను చదవండి



PySpark SQLకి పార్కెట్ ఫైల్‌ను చదవండి





Pyspark.sql.DataFrameReader.parquet()

ఈ ఫంక్షన్ parquet ఫైల్‌ను చదవడానికి మరియు దానిని PySpark DataFrameలో లోడ్ చేయడానికి ఉపయోగించబడుతుంది. ఇది పారేకెట్ ఫైల్ యొక్క మార్గం/ఫైల్ పేరును తీసుకుంటుంది. ఇది సాధారణ ఫంక్షన్ అయినందున మనం read.parquet() ఫంక్షన్‌ని ఉపయోగించవచ్చు.

సింటాక్స్:



read.parquet() యొక్క సింటాక్స్ చూద్దాం

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

ముందుగా, పిప్ కమాండ్ ఉపయోగించి PySpark మాడ్యూల్‌ను ఇన్‌స్టాల్ చేయండి:

పిప్ ఇన్‌స్టాల్ పిస్పార్క్

పార్కెట్ ఫైల్ పొందండి

పారేకెట్ ఫైల్‌ను చదవడానికి, ఆ డేటా నుండి పారేకెట్ ఫైల్ రూపొందించబడిన డేటా మీకు అవసరం. ఈ భాగంలో, PySpark DataFrame నుండి పారేకెట్ ఫైల్‌ను ఎలా రూపొందించాలో చూద్దాం.

5 రికార్డులతో PySpark DataFrameని క్రియేట్ చేద్దాం మరియు దీనిని 'industry_parquet' పారేకెట్ ఫైల్‌కు వ్రాస్దాం.

పైస్పార్క్ దిగుమతి

pyspark.sql నుండి SparkSession,Row దిగుమతి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

# పరిశ్రమ వివరాలను నిల్వ చేసే డేటాఫ్రేమ్‌ను సృష్టించండి

industry_df = linuxhint_spark_app.createDataFrame([వరుస(రకం==) 'వ్యవసాయం' ,ఏరియా= 'USA' ,
రేటింగ్ = 'హాట్' ,మొత్తం_ఉద్యోగులు= 100 ),

వరుస(రకం= 'వ్యవసాయం' ,ఏరియా= 'భారతదేశం' ,రేటింగ్= 'హాట్' ,మొత్తం_ఉద్యోగులు= 200 ),

వరుస(రకం= 'అభివృద్ధి' ,ఏరియా= 'USA' ,రేటింగ్= 'వెచ్చని' ,మొత్తం_ఉద్యోగులు= 100 ),

వరుస(రకం= 'చదువు' ,ఏరియా= 'USA' ,రేటింగ్= 'కూల్' ,మొత్తం_ఉద్యోగులు= 400 ),

వరుస(రకం= 'చదువు' ,ఏరియా= 'USA' ,రేటింగ్= 'వెచ్చని' ,మొత్తం_ఉద్యోగులు= ఇరవై )

])

# వాస్తవ డేటా ఫ్రేమ్

industry_df.show()

# ఇండస్ట్రీ_డిఎఫ్‌ని పార్కెట్ ఫైల్‌కి వ్రాయండి

industry_df.coalesce( 1 ).write.parquet( 'industry_parquet' )

అవుట్‌పుట్:

ఇది 5 రికార్డులను కలిగి ఉన్న డేటాఫ్రేమ్.

మునుపటి డేటాఫ్రేమ్ కోసం పారేకెట్ ఫైల్ సృష్టించబడింది. ఇక్కడ, పొడిగింపుతో మా ఫైల్ పేరు “part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet”. మేము ఈ ఫైల్‌ను మొత్తం ట్యుటోరియల్‌లో ఉపయోగిస్తాము.

PySpark DataFrameకి Parquet ఫైల్‌ను చదవండి

మా వద్ద పారేకెట్ ఫైల్ ఉంది. ఈ ఫైల్‌ని read.parquet() ఫంక్షన్‌ని ఉపయోగించి చదివి, దానిని PySpark DataFrameలో లోడ్ చేద్దాం.

పైస్పార్క్ దిగుమతి

pyspark.sql నుండి SparkSession,Row దిగుమతి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

# పార్కెట్ ఫైల్‌ను డేటాఫ్రేమ్‌లో_పార్కెట్ ఆబ్జెక్ట్ నుండి చదవండి.

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

# parquet-DataFrame నుండి_డేటాఫ్రేమ్‌ని ప్రదర్శించండి

dataframe_from_parquet.show()

అవుట్‌పుట్:

మేము parquet ఫైల్ నుండి సృష్టించబడిన show() పద్ధతిని ఉపయోగించి DataFrameని ప్రదర్శిస్తాము.

పార్కెట్ ఫైల్‌తో SQL ప్రశ్నలు

డేటాఫ్రేమ్‌లోకి లోడ్ చేసిన తర్వాత, SQL పట్టికలను సృష్టించడం మరియు డేటాఫ్రేమ్‌లో ఉన్న డేటాను ప్రదర్శించడం సాధ్యమవుతుంది. మేము తాత్కాలిక వీక్షణను సృష్టించాలి మరియు పారేకెట్ ఫైల్ నుండి సృష్టించబడిన డేటాఫ్రేమ్ నుండి రికార్డులను తిరిగి ఇవ్వడానికి SQL ఆదేశాలను ఉపయోగించాలి.

ఉదాహరణ 1:

'సెక్టార్స్' పేరుతో తాత్కాలిక వీక్షణను సృష్టించండి మరియు డేటాఫ్రేమ్‌లో రికార్డులను ప్రదర్శించడానికి SELECT ఆదేశాన్ని ఉపయోగించండి. మీరు దీనిని సూచించవచ్చు ట్యుటోరియల్ స్పార్క్ - SQLలో వీక్షణను ఎలా సృష్టించాలో వివరిస్తుంది.

పైస్పార్క్ దిగుమతి

pyspark.sql నుండి SparkSession,Row దిగుమతి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

# పార్కెట్ ఫైల్‌ను డేటాఫ్రేమ్‌లో_పార్కెట్ ఆబ్జెక్ట్ నుండి చదవండి.

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

# పైన పేర్కొన్న పార్కెట్ ఫైల్ నుండి వీక్షణను సృష్టించండి - 'సెక్టార్స్'

dataframe_from_parquet.createOrReplaceTempView( 'రంగాలు' )

# సెక్టార్‌ల నుండి అన్ని రికార్డులను ప్రదర్శించడానికి ప్రశ్న

linuxhint_spark_app.sql( 'సెక్టార్ల నుండి * ఎంచుకోండి' ).show()

అవుట్‌పుట్:

ఉదాహరణ 2:

మునుపటి వీక్షణను ఉపయోగించి, SQL ప్రశ్నను వ్రాయండి:

  1. 'భారతదేశం'కి చెందిన సెక్టార్‌ల నుండి అన్ని రికార్డులను ప్రదర్శించడానికి.
  2. 100 కంటే ఎక్కువ ఉన్న ఉద్యోగితో సెక్టార్‌ల నుండి అన్ని రికార్డులను ప్రదర్శించడానికి.
# 'భారతదేశం'కి చెందిన సెక్టార్‌ల నుండి అన్ని రికార్డులను ప్రదర్శించడానికి ప్రశ్న.

linuxhint_spark_app.sql( 'ఏరియా='భారతదేశం' ఉన్న రంగాల నుండి *ని ఎంచుకోండి' ).show()

# 100 కంటే ఎక్కువ మంది ఉద్యోగులతో సెక్టార్‌ల నుండి అన్ని రికార్డులను ప్రదర్శించడానికి ప్రశ్న

linuxhint_spark_app.sql( 'మొత్తం_ఉద్యోగులు>100 మంది ఉన్న సెక్టార్ల నుండి *ని ఎంచుకోండి' ).show()

అవుట్‌పుట్:

విస్తీర్ణంలో 'భారతదేశం' అనే ఒకే ఒక రికార్డు మరియు 100 కంటే ఎక్కువ ఉద్యోగులతో రెండు రికార్డులు ఉన్నాయి.

PySpark SQLకి పార్కెట్ ఫైల్‌ను చదవండి

ముందుగా, మనం CREATE ఆదేశాన్ని ఉపయోగించి వీక్షణను సృష్టించాలి. SQL ప్రశ్నలోని “మార్గం” కీవర్డ్‌ని ఉపయోగించి, మేము పార్క్‌ట్ ఫైల్‌ను స్పార్క్ SQLకి చదవవచ్చు. మార్గం తర్వాత, మేము ఫైల్ పేరు / ఫైల్ స్థానాన్ని పేర్కొనాలి.

సింటాక్స్:

spark_app.sql( 'పార్కెట్ ఎంపికలను ఉపయోగించి తాత్కాలిక వీక్షణ వీక్షణ_పేరును సృష్టించండి (మార్గం' file_name.parquet ')' )

ఉదాహరణ 1:

'Sector2' పేరుతో తాత్కాలిక వీక్షణను సృష్టించండి మరియు దానిలో పారేకెట్ ఫైల్‌ను చదవండి. sql() ఫంక్షన్‌ని ఉపయోగించి, వీక్షణలో ఉన్న అన్ని రికార్డులను ప్రదర్శించడానికి ఎంచుకున్న ప్రశ్నను వ్రాయండి.

పైస్పార్క్ దిగుమతి

pyspark.sql నుండి SparkSession,Row దిగుమతి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

# పార్క్వెట్ ఫైల్‌ను స్పార్క్- SQL లోకి చదవండి

linuxhint_spark_app.sql( 'పార్కెట్ ఎంపికలు (మార్గం') ఉపయోగించి 'తాత్కాలిక వీక్షణ సెక్టార్2ని సృష్టించండి' భాగం-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )

# సెక్టార్ 2 నుండి అన్ని రికార్డులను ప్రదర్శించడానికి ప్రశ్న

linuxhint_spark_app.sql( 'సెక్టార్2 నుండి * ఎంచుకోండి' ).show()

అవుట్‌పుట్:

ఉదాహరణ 2:

'హాట్' లేదా 'కూల్' రేటింగ్‌తో అన్ని రికార్డ్‌లను ప్రదర్శించడానికి మునుపటి వీక్షణను ఉపయోగించండి మరియు ప్రశ్నను వ్రాయండి.

# సెక్టార్ 2 నుండి అన్ని రికార్డులను రేటింగ్‌తో ప్రదర్శించడానికి ప్రశ్న- హాట్ లేదా కూల్.

linuxhint_spark_app.sql( 'సెక్టార్2 నుండి * ఎంచుకోండి ఇక్కడ రేటింగ్='హాట్' లేదా రేటింగ్='కూల్'' ).show()

అవుట్‌పుట్:

'హాట్' లేదా 'కూల్' రేటింగ్‌తో మూడు రికార్డులు ఉన్నాయి.

ముగింపు

PySparkలో, write.parquet() ఫంక్షన్ డేటాఫ్రేమ్‌ను పారేకెట్ ఫైల్‌కి వ్రాస్తుంది. read.parquet() ఫంక్షన్ పారేకెట్ ఫైల్‌ను PySpark DataFrame లేదా ఏదైనా ఇతర డేటాసోర్స్‌కి రీడ్ చేస్తుంది. మేము PySpark DataFrame మరియు PySpark పట్టికలో పారేకెట్ ఫైల్‌ను ఎలా చదవాలో నేర్చుకున్నాము. ఈ ట్యుటోరియల్‌లో భాగంగా, మేము PySpark DataFrame నుండి పట్టికలను ఎలా సృష్టించాలో మరియు WHERE నిబంధనను ఉపయోగించి డేటాను ఎలా ఫిల్టర్ చేయాలో కూడా చర్చించాము.