PySpark Read JSON()

Pyspark Read Json



PySpark DataFrames உடன் பணிபுரியும் போது, ​​நீங்கள் JSON தரவை செயலாக்க விரும்பினால், அது PySpark DataFrame இல் சேமிக்கப்பட வேண்டும். DataFrame இல் சேமித்த பிறகு, தரவுகளில் பல்வேறு செயல்பாடுகள் மற்றும் முறைகளைப் பயன்படுத்தலாம். மேலும், JSON ஐ PySpark DataFrame ஆக மாற்றினால் பல நன்மைகள் உள்ளன, ஏனெனில் இது எளிமையானது மற்றும் தரவை எளிமையான முறையில் மாற்றலாம்/பகிர்வு செய்யலாம்.

உள்ளடக்கத்தின் தலைப்பு:

Pandas.read_json()ஐப் பயன்படுத்தி PySpark DataFrame இல் JSON ஐப் படித்தல்







Spark.read.json() ஐப் பயன்படுத்தி JSON முதல் PySpark DataFrame ஐப் படித்தல்



PySpark SQL ஐப் பயன்படுத்தி JSON முதல் PySpark DataFrame ஐப் படித்தல்



இந்த டுடோரியலில், Pandas.read_json(), spark.read.json(), மற்றும் spark.sql ஐப் பயன்படுத்தி PySpark DataFrame இல் JSON ஐ எவ்வாறு படிப்பது என்று பார்ப்போம். எல்லா சூழ்நிலைகளிலும், வெவ்வேறு JSON வடிவங்களைக் கருத்தில் கொண்டு வெவ்வேறு எடுத்துக்காட்டுகளைப் பார்ப்போம்.





பின்வரும் உதாரணங்களை செயல்படுத்தும் முன் PySpark நூலகத்தை நிறுவவும்.

pip நிறுவ pyspark

வெற்றிகரமான நிறுவலுக்குப் பிறகு, வெளியீட்டை பின்வருமாறு காணலாம்:



Pandas.read_json()ஐப் பயன்படுத்தி PySpark DataFrame இல் JSON ஐப் படித்தல்

PySpark இல், DataFrame ஐ நேரடியாக உருவாக்க createDataFrame() முறை பயன்படுத்தப்படுகிறது. இங்கே, நாம் Pandas.read_json() முறை மூலம் JSON கோப்பு/பாதையை JSON கோப்பிற்கு அனுப்ப வேண்டும். இந்த read_json() முறையானது Pandas தொகுதியில் கிடைக்கும் கோப்பு பெயர்/பாதையை எடுக்கும். அதனால்தான் பாண்டாஸ் தொகுதியை இறக்குமதி செய்து பயன்படுத்த வேண்டும்.

தொடரியல்:

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( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# pandas.read_json()

வேட்பாளர்_ஸ்கில்ஸ் = linuxhint_spark_app.createDataFrame(pandas.read_json( 'student_skill.json' ))

Candident_skills.show()

வெளியீடு:

குறிப்பிட்ட நெடுவரிசைகள் மற்றும் வரிசைகளுடன் JSON தரவு PySpark DataFrame ஆக மாற்றப்படுவதை நாம் காணலாம்.

2. Spark.read.json() ஐப் பயன்படுத்தி JSON முதல் PySpark DataFrame ஐப் படித்தல்

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( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# PySpark DataFrame இல் வேட்பாளர்_skills.json ஐப் படிக்கவும்

வேட்பாளர்_ஸ்கில்ஸ் = linuxhint_spark_app.read.json( 'candidate_skills.json' )

Candident_skills.show()

வெளியீடு:

குறிப்பிட்ட பதிவுகள் மற்றும் நெடுவரிசைப் பெயர்களுடன் 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( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# PySpark DataFrame இல் multi.json (பல வரிகளைக் கொண்ட) படிக்கவும்

Candident_skills = linuxhint_spark_app.read.option( 'பலவரிசை' , 'உண்மை' ).json( 'multi.json' )

Candident_skills.show()

வெளியீடு:

காட்சி 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( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# PySpark DataFrame இல் ஒரே நேரத்தில் வேட்பாளர்_திறன் மற்றும் வேட்பாளர்_திறன் 2 கோப்புகளைப் படிக்கவும்

Candident_skills = linuxhint_spark_app.read.json([ 'candidate_skills.json' , 'candidate_skills2.json' ])

Candident_skills.show()

வெளியீடு:

இறுதியாக, DataFrame நான்கு பதிவுகளைக் கொண்டுள்ளது. முதல் மூன்று பதிவுகள் முதல் JSON க்கு சொந்தமானது மற்றும் கடைசி பதிவுகள் இரண்டாவது JSON க்கு சொந்தமானது.

Spark.read.json() ஐப் பயன்படுத்தி JSON முதல் PySpark DataFrame ஐப் படித்தல்

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( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# PySpark DataFrame இல் வேட்பாளர்_skills.json ஐப் படிக்கவும்

வேட்பாளர்_ஸ்கில்ஸ் = linuxhint_spark_app.read.json( 'candidate_skills.json' )

Candident_skills.show()

வெளியீடு:

குறிப்பிட்ட பதிவுகள் மற்றும் நெடுவரிசைப் பெயர்களுடன் JSON தரவு PySpark DataFrame ஆக மாற்றப்படுவதை நாம் காணலாம்.

PySpark SQL ஐப் பயன்படுத்தி JSON முதல் PySpark DataFrame ஐப் படித்தல்

PySpark SQL ஐப் பயன்படுத்தி எங்கள் JSON தரவின் தற்காலிகக் காட்சியை உருவாக்க முடியும். நேரடியாக, தற்காலிக காட்சியை உருவாக்கும் நேரத்தில் JSON ஐ வழங்கலாம். பின்வரும் தொடரியலைப் பாருங்கள். அதன் பிறகு, PySpark DataFrame ஐ காட்ட SELECT கட்டளையைப் பயன்படுத்தலாம்.

தொடரியல்:

spark_app.sql( 'json விருப்பங்களைப் பயன்படுத்தி தற்காலிகக் காட்சிக் காட்சி_பெயரை உருவாக்கவும் (பாதை ‘file_name.json')' )

இங்கே, “VIEW_NAME” என்பது JSON தரவின் பார்வை மற்றும் “file_name” என்பது JSON கோப்பின் பெயர்.

எடுத்துக்காட்டு 1:

முந்தைய எடுத்துக்காட்டுகளில் பயன்படுத்தப்பட்ட JSON கோப்பைக் கவனியுங்கள் - “candidate_skills.json”. '*' ஆபரேட்டருடன் SELECT ஐப் பயன்படுத்தி DataFrame இலிருந்து அனைத்து வரிசைகளையும் தேர்ந்தெடுக்கவும். இங்கே, * PySpark DataFrame இலிருந்து அனைத்து நெடுவரிசைகளையும் தேர்ந்தெடுக்கிறது.

பைஸ்பார்க் இறக்குமதி

பாண்டாக்களை இறக்குமதி செய்

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# JSON இலிருந்து VIEW ஐ உருவாக்க spark.sql ஐப் பயன்படுத்துதல்

வேட்பாளர்_ஸ்கில்ஸ் = linuxhint_spark_app.sql( 'json விருப்பங்களைப் பயன்படுத்தி தற்காலிகக் காட்சி வேட்பாளர்_தரவை உருவாக்கவும் (பாதை 'candidate_skills.json')' )

# வேட்பாளர்_தரவில் இருந்து அனைத்து பதிவுகளையும் தேர்ந்தெடுக்க SELECT வினவலைப் பயன்படுத்தவும்.

linuxhint_spark_app.sql( 'தேர்வு * வேட்பாளர்_தரவில் இருந்து' ).show()

வெளியீடு:

PySpark DataFrame இல் உள்ள மொத்த பதிவுகளின் எண்ணிக்கை (JSON இலிருந்து படிக்கப்பட்டது) 3 ஆகும்.

எடுத்துக்காட்டு 2:

இப்போது, ​​PySpark DataFrame இல் உள்ள பதிவுகளை வயது நிரலின் அடிப்படையில் வடிகட்டவும். 22 வயதிற்கு மேற்பட்ட வரிசைகளைப் பெற, வயதில் 'அதிகமான' ஆபரேட்டரைப் பயன்படுத்தவும்.

# 22 வயதுக்கு மேற்பட்ட பதிவுகளைத் தேர்ந்தெடுக்க SELECT வினவலைப் பயன்படுத்தவும்.

linuxhint_spark_app.sql( 'வயது>22 இருக்கும் வேட்பாளர்_தரவிலிருந்து * தேர்ந்தெடுக்கவும்' ).show()

வெளியீடு:

PySpark DataFrame இல் 22 வயதுக்கு மேற்பட்ட வயதுடைய ஒரே ஒரு பதிவு மட்டுமே உள்ளது.

முடிவுரை

PySpark DataFrame இல் JSON ஐப் படிக்க மூன்று வெவ்வேறு வழிகளைக் கற்றுக்கொண்டோம். முதலில், JSON முதல் PySpark DataFrame வரை படிக்க, Pandas தொகுதியில் உள்ள read_json() முறையை எவ்வாறு பயன்படுத்துவது என்று கற்றுக்கொண்டோம். அடுத்து, spark.read.json() முறையைப் பயன்படுத்தி ஒற்றை/பல வரி JSON கோப்புகளை எப்படிப் படிப்பது என்பதைக் கற்றுக்கொண்டோம். ஒரே நேரத்தில் பல JSON கோப்புகளைப் படிக்க, இந்த முறைக்கு கோப்பு பெயர்களின் பட்டியலை அனுப்ப வேண்டும். PySpark SQL ஐப் பயன்படுத்தி, JSON கோப்பு தற்காலிகக் காட்சியில் படிக்கப்படுகிறது மற்றும் SELECT வினவலைப் பயன்படுத்தி DataFrame காட்டப்படும்.