PySpark రీడ్ JSON()

Pyspark Rid Json



PySpark DataFramesతో పని చేస్తున్నప్పుడు, మీరు JSON డేటాను ప్రాసెస్ చేయాలనుకుంటే అది PySpark DataFrameలో నిల్వ చేయబడాలి. డేటాఫ్రేమ్‌లో నిల్వ చేసిన తర్వాత, మేము డేటాపై వివిధ కార్యకలాపాలు మరియు పద్ధతులను వర్తింపజేయవచ్చు. అలాగే, మనం JSONని PySpark DataFrameకి మార్చినట్లయితే చాలా ప్రయోజనాలు ఉన్నాయి, ఎందుకంటే ఇది చాలా సులభం మరియు మేము డేటాను సరళమైన మార్గంలో మార్చవచ్చు/విభజించవచ్చు.

విషయాల అంశం:

Pandas.read_json()ని ఉపయోగించి PySpark డేటాఫ్రేమ్‌లోకి JSONని చదవడం







Spark.read.json()ని ఉపయోగించి JSON నుండి PySpark డేటాఫ్రేమ్‌ను చదవడం



PySpark SQLని ఉపయోగించి JSON నుండి PySpark డేటాఫ్రేమ్‌ను చదవడం



ఈ ట్యుటోరియల్‌లో, pandas.read_json(), spark.read.json(), మరియు spark.sqlని ఉపయోగించి PySpark DataFrameలో JSONని ఎలా చదవాలో చూద్దాం. అన్ని దృశ్యాలలో, మేము వివిధ JSON ఫార్మాట్‌లను పరిగణనలోకి తీసుకోవడం ద్వారా విభిన్న ఉదాహరణలను పరిశీలిస్తాము.





కింది ఉదాహరణలను అమలు చేయడానికి ముందు PySpark లైబ్రరీని ఇన్‌స్టాల్ చేయండి.

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

విజయవంతమైన ఇన్‌స్టాలేషన్ తర్వాత, మీరు ఈ క్రింది విధంగా అవుట్‌పుట్‌ను చూడవచ్చు:



Pandas.read_json()ని ఉపయోగించి PySpark డేటాఫ్రేమ్‌లోకి JSONని చదవడం

PySparkలో, నేరుగా DataFrameని సృష్టించడానికి createDataFrame() పద్ధతి ఉపయోగించబడుతుంది. ఇక్కడ, మనం JSON ఫైల్/పాత్‌ను pandas.read_json() పద్ధతి ద్వారా JSON ఫైల్‌కి పంపాలి. ఈ read_json() పద్ధతి పాండాస్ మాడ్యూల్‌లో అందుబాటులో ఉన్న ఫైల్ పేరు/మార్గాన్ని తీసుకుంటుంది. అందుకే పాండాస్ మాడ్యూల్‌ని దిగుమతి చేసుకోవడం మరియు ఉపయోగించడం అవసరం.

సింటాక్స్:

spark_app.createDataFrame(pandas.read_json( 'file_name.json' ))

ఉదాహరణ:

2 రికార్డ్‌లను కలిగి ఉన్న “student_skill.json” పేరుతో JSON ఫైల్‌ని క్రియేట్ చేద్దాం. ఇక్కడ, కీలు/నిలువు వరుసలు “స్టూడెంట్ 1” మరియు “స్టూడెంట్ 2”. వరుసలు పేరు, వయస్సు, నైపుణ్యం1 మరియు నైపుణ్యం2.

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

పాండాలను దిగుమతి చేసుకోండి

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

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

# పాండాలను ఉపయోగించడం.read_json()

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.createDataFrame(pandas.read_json( 'student_skill.json' ))

అభ్యర్థి_స్కిల్స్.షో()

అవుట్‌పుట్:

పేర్కొన్న నిలువు వరుసలు మరియు అడ్డు వరుసలతో JSON డేటా PySpark DataFrameకి మార్చబడిందని మనం చూడవచ్చు.

2. Spark.read.json()ని ఉపయోగించి JSON నుండి PySpark డేటాఫ్రేమ్‌ను చదవడం

read.json() అనేది పాండాస్‌లోని read_json()ని పోలి ఉండే పద్ధతి. ఇక్కడ, read.json() JSONకి లేదా నేరుగా JSON ఫైల్‌కి మార్గాన్ని తీసుకుంటుంది మరియు దానిని నేరుగా PySpark DataFrameలోకి లోడ్ చేస్తుంది. ఈ దృష్టాంతంలో createDataFrame() పద్ధతిని ఉపయోగించాల్సిన అవసరం లేదు. మీరు ఒకేసారి బహుళ JSON ఫైల్‌లను చదవాలనుకుంటే, మేము కామాతో వేరు చేయబడిన జాబితా ద్వారా JSON ఫైల్ పేర్ల జాబితాను పాస్ చేయాలి. అన్ని JSON రికార్డులు ఒకే డేటాఫ్రేమ్‌లో నిల్వ చేయబడతాయి.

సింటాక్స్:

సింగిల్ ఫైల్ - spark_app.read.json( 'file_name.json' )

బహుళ ఫైల్‌లు - spark_app.read.json([ 'file1.json' , 'file2.json' ,...])

దృశ్యం 1: JSON ఒకే పంక్తితో చదవండి

మీ JSON ఫైల్ రికార్డ్1, రికార్డ్2, రికార్డ్3... (సింగిల్ లైన్) ఫార్మాట్‌లలో ఉంటే, మేము దానిని ఒకే పంక్తులతో JSON అని పిలుస్తాము. Spark ఈ రికార్డులను ప్రాసెస్ చేస్తుంది మరియు PySpark DataFrameలో వరుసలుగా నిల్వ చేస్తుంది. ప్రతి రికార్డ్ PySpark DataFrameలో ఒక వరుస.

3 రికార్డ్‌లను కలిగి ఉన్న “candidate_skills.json” పేరుతో JSON ఫైల్‌ని క్రియేట్ చేద్దాం. PySpark DataFrameలో ఈ JSONని చదవండి.

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

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

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

# PySpark DataFrameలో అభ్యర్థి_skills.jsonని చదవండి

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.read.json( 'candidate_skills.json' )

అభ్యర్థి_స్కిల్స్.షో()

అవుట్‌పుట్:

పేర్కొన్న రికార్డులు మరియు నిలువు వరుస పేర్లతో JSON డేటా PySpark DataFrameకి మార్చబడిందని మనం చూడవచ్చు.

దృష్టాంతం 2: JSON బహుళ పంక్తులు కలిగి చదవండి

మీ JSON ఫైల్ బహుళ పంక్తులను కలిగి ఉన్నట్లయితే, ఒప్పుకు సెట్ చేయవలసిన బహుళ లైన్ పరామితిని పాస్ చేయడానికి మీరు read.option().json() పద్ధతిని ఉపయోగించాలి. ఇది PySpark DataFrameలో బహుళ లైన్‌లను కలిగి ఉన్న JSONని లోడ్ చేయడానికి మమ్మల్ని అనుమతిస్తుంది.

read.option( 'బహుళ లైన్' , 'నిజం' ).json( 'file_name.json' )

3 రికార్డ్‌లను కలిగి ఉన్న “multi.json” పేరుతో JSON ఫైల్‌ని క్రియేట్ చేద్దాం. ఈ JSONని PySpark DataFrameలో చదవండి.

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

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

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

# PySpark DataFrameలో multi.json (బహుళ పంక్తులు కలిగి) చదవండి

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.read.option( 'బహుళ లైన్' , 'నిజం' ).json( 'multi.json' )

అభ్యర్థి_స్కిల్స్.షో()

అవుట్‌పుట్:

దృశ్యం 3: బహుళ JSON చదవండి

బహుళ JSON ఫైల్‌లకు సంబంధించి ఈ ట్యుటోరియల్ ప్రారంభ దశలో మేము ఇప్పటికే చర్చించాము. మీరు ఒకేసారి బహుళ JSON ఫైల్‌లను చదవాలనుకుంటే మరియు వాటిని ఒకే PySpark DataFrameలో నిల్వ చేయాలనుకుంటే, మేము ఫైల్ పేర్ల జాబితాను read.json() పద్ధతికి పంపాలి.

“candidate_skills.json” మరియు “candidate_skills2.json” పేరుతో రెండు JSON ఫైల్‌లను సృష్టించి, వాటిని PySpark DataFrameలోకి లోడ్ చేద్దాం.

“candidate_skills.json” ఫైల్ మూడు రికార్డులను కలిగి ఉంది.

“candidate_skill2.json” ఫైల్ ఒక్క రికార్డ్‌ను మాత్రమే కలిగి ఉంది.

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

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

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

# PySpark DataFrameలో ఒకేసారి అభ్యర్థి_నైపుణ్యాలు మరియు అభ్యర్థి_స్కిల్స్2 ఫైల్‌లను చదవండి

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.read.json([ 'candidate_skills.json' , 'candidate_skills2.json' ])

అభ్యర్థి_స్కిల్స్.షో()

అవుట్‌పుట్:

చివరగా, డేటాఫ్రేమ్ నాలుగు రికార్డులను కలిగి ఉంది. మొదటి మూడు రికార్డ్‌లు మొదటి JSONకి చెందినవి మరియు చివరి రికార్డ్‌లు రెండవ JSONకి చెందినవి.

Spark.read.json()ని ఉపయోగించి JSON నుండి PySpark డేటాఫ్రేమ్‌ను చదవడం

read.json() అనేది పాండాస్‌లోని read_json()ని పోలి ఉండే పద్ధతి. ఇక్కడ, read.json() JSONకి లేదా నేరుగా JSON ఫైల్‌కి మార్గాన్ని తీసుకుంటుంది మరియు దానిని నేరుగా PySpark DataFrameలోకి లోడ్ చేస్తుంది. ఈ దృష్టాంతంలో createDataFrame() పద్ధతిని ఉపయోగించాల్సిన అవసరం లేదు. మీరు ఒకేసారి బహుళ JSON ఫైల్‌లను చదవాలనుకుంటే, మేము కామాతో వేరు చేయబడిన జాబితా ద్వారా JSON ఫైల్ పేర్ల జాబితాను పాస్ చేయాలి. అన్ని JSON రికార్డులు ఒకే డేటాఫ్రేమ్‌లో నిల్వ చేయబడతాయి.

సింటాక్స్:

సింగిల్ ఫైల్ - spark_app.read.json( 'file_name.json' )

బహుళ ఫైల్‌లు - spark_app.read.json([ 'file1.json' , 'file2.json' ,...])

దృశ్యం 1: JSON ఒకే పంక్తితో చదవండి

మీ JSON ఫైల్ రికార్డ్1, రికార్డ్2, రికార్డ్3... (సింగిల్ లైన్) ఫార్మాట్‌లో ఉన్నట్లయితే, మేము దానిని ఒకే పంక్తులతో JSON అని పిలుస్తాము. Spark ఈ రికార్డులను ప్రాసెస్ చేస్తుంది మరియు PySpark DataFrameలో వరుసలుగా నిల్వ చేస్తుంది. ప్రతి రికార్డ్ PySpark DataFrameలో ఒక వరుస.

3 రికార్డ్‌లను కలిగి ఉన్న “candidate_skills.json” పేరుతో JSON ఫైల్‌ని క్రియేట్ చేద్దాం. ఈ JSONని PySpark DataFrameలో చదవండి.

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

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

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

# PySpark DataFrameలో అభ్యర్థి_skills.jsonని చదవండి

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.read.json( 'candidate_skills.json' )

అభ్యర్థి_స్కిల్స్.షో()

అవుట్‌పుట్:

పేర్కొన్న రికార్డులు మరియు నిలువు వరుస పేర్లతో JSON డేటా PySpark DataFrameకి మార్చబడిందని మనం చూడవచ్చు.

PySpark SQLని ఉపయోగించి JSON నుండి PySpark డేటాఫ్రేమ్‌ను చదవడం

PySpark SQLని ఉపయోగించి మా JSON డేటా యొక్క తాత్కాలిక వీక్షణను సృష్టించడం సాధ్యమవుతుంది. నేరుగా, మేము తాత్కాలిక వీక్షణను సృష్టించే సమయంలో JSONని అందించగలము. కింది వాక్యనిర్మాణాన్ని చూడండి. ఆ తర్వాత, మనం PySpark DataFrameని ప్రదర్శించడానికి SELECT ఆదేశాన్ని ఉపయోగించవచ్చు.

సింటాక్స్:

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

ఇక్కడ, “VIEW_NAME” అనేది JSON డేటా యొక్క వీక్షణ మరియు “file_name” అనేది JSON ఫైల్ పేరు.

ఉదాహరణ 1:

మునుపటి ఉదాహరణలలో ఉపయోగించిన JSON ఫైల్‌ను పరిగణించండి - “candidate_skills.json”. '*' ఆపరేటర్‌తో SELECTని ఉపయోగించి డేటాఫ్రేమ్ నుండి అన్ని అడ్డు వరుసలను ఎంచుకోండి. ఇక్కడ, * PySpark DataFrame నుండి అన్ని నిలువు వరుసలను ఎంచుకుంటుంది.

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

పాండాలను దిగుమతి చేసుకోండి

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

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

# JSON నుండి VIEWని సృష్టించడానికి spark.sqlని ఉపయోగించడం

అభ్యర్థి_స్కిల్స్ = linuxhint_spark_app.sql( 'json ఎంపికలను ఉపయోగించి తాత్కాలిక వీక్షణ అభ్యర్థి_డేటాను సృష్టించండి (పాత్ 'candidate_skills.json')' )

# Candidate_data నుండి అన్ని రికార్డ్‌లను ఎంచుకోవడానికి SELECT ప్రశ్నను ఉపయోగించండి.

linuxhint_spark_app.sql( 'Candidate_data నుండి *ని ఎంచుకోండి' ).show()

అవుట్‌పుట్:

PySpark డేటాఫ్రేమ్‌లోని మొత్తం రికార్డుల సంఖ్య (JSON నుండి చదవబడింది) 3.

ఉదాహరణ 2:

ఇప్పుడు, వయస్సు కాలమ్ ఆధారంగా PySpark DataFrameలో రికార్డులను ఫిల్టర్ చేయండి. 22 కంటే ఎక్కువ వయస్సు ఉన్న అడ్డు వరుసలను పొందడానికి వయస్సులో 'అంతకంటే ఎక్కువ' ఆపరేటర్‌ని ఉపయోగించండి.

# వయస్సు > 22 ఉన్న రికార్డులను ఎంచుకోవడానికి SELECT ప్రశ్నను ఉపయోగించండి.

linuxhint_spark_app.sql( 'వయస్సు>22 ఉన్న అభ్యర్థి_డేటా నుండి *ని ఎంచుకోండి' ).show()

అవుట్‌పుట్:

PySpark DataFrameలో 22 కంటే ఎక్కువ వయస్సు ఉన్న ఒక రికార్డు మాత్రమే ఉంది.

ముగింపు

PySpark DataFrameలో JSONని చదవడానికి మేము మూడు విభిన్న మార్గాలను నేర్చుకున్నాము. ముందుగా, JSON నుండి PySpark DataFrameని చదవడానికి పాండాస్ మాడ్యూల్‌లో అందుబాటులో ఉన్న read_json() పద్ధతిని ఎలా ఉపయోగించాలో మేము నేర్చుకున్నాము. తర్వాత, మేము spark.read.json() పద్ధతిని ఆప్షన్()తో ఉపయోగించి సింగిల్/మల్టీ లైన్ JSON ఫైల్‌లను ఎలా చదవాలో నేర్చుకున్నాము. ఒకేసారి బహుళ JSON ఫైల్‌లను చదవడానికి, మేము ఫైల్ పేర్ల జాబితాను ఈ పద్ధతికి పంపాలి. PySpark SQLని ఉపయోగించి, JSON ఫైల్ తాత్కాలిక వీక్షణలో చదవబడుతుంది మరియు SELECT ప్రశ్నను ఉపయోగించి డేటాఫ్రేమ్ ప్రదర్శించబడుతుంది.