PySpark Read.Parquet()

Pyspark Read Parquet



PySpark இல், write.parquet() செயல்பாடு DataFrame ஐ பார்க்வெட் கோப்பில் எழுதுகிறது மற்றும் read.parquet() பார்க்வெட் கோப்பை PySpark DataFrame அல்லது வேறு எந்த டேட்டாசோர்ஸிலும் படிக்கிறது. அப்பாச்சி ஸ்பார்க்கில் உள்ள நெடுவரிசைகளை விரைவாகவும் திறமையாகவும் செயல்படுத்த, நாம் தரவை சுருக்க வேண்டும். தரவு சுருக்கமானது நமது நினைவகத்தை சேமிக்கிறது மற்றும் அனைத்து நெடுவரிசைகளும் பிளாட் லெவலாக மாற்றப்படும். அதாவது பிளாட் நெடுவரிசை நிலை சேமிப்பகம் உள்ளது. இவற்றைச் சேமிக்கும் கோப்பு PARQUET கோப்பு எனப்படும்.

இந்த வழிகாட்டியில், pyspark.sql.DataFrameReader வகுப்பில் கிடைக்கும் read.parquet() செயல்பாட்டைப் பயன்படுத்தி PySpark DataFrame/SQL இல் பார்க்வெட் கோப்பைப் படிப்பதில்/ஏற்றுவதில் முக்கியமாக கவனம் செலுத்துவோம்.

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







பார்க்வெட் கோப்பைப் பெறுங்கள்



PySpark DataFrame இல் பார்க்வெட் கோப்பைப் படிக்கவும்



PySpark SQL க்கு பார்க்வெட் கோப்பைப் படிக்கவும்





Pyspark.sql.DataFrameReader.parquet()

பார்க்வெட் கோப்பைப் படிக்கவும், அதை பைஸ்பார்க் டேட்டாஃப்ரேமில் ஏற்றவும் இந்தச் செயல்பாடு பயன்படுகிறது. இது பார்க்வெட் கோப்பின் பாதை/கோப்பின் பெயரை எடுக்கும். இது பொதுவான செயல்பாடு என்பதால் நாம் read.parquet() செயல்பாட்டைப் பயன்படுத்தலாம்.

தொடரியல்:



read.parquet() என்பதன் தொடரியலைப் பார்ப்போம்.

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

முதலில், pip கட்டளையைப் பயன்படுத்தி PySpark தொகுதியை நிறுவவும்:

pip நிறுவ pyspark

பார்க்வெட் கோப்பைப் பெறுங்கள்

பார்க்வெட் கோப்பைப் படிக்க, அந்தத் தரவிலிருந்து பார்க்வெட் கோப்பு உருவாக்கப்பட்ட தரவு உங்களுக்குத் தேவை. இந்த பகுதியில், PySpark DataFrame இலிருந்து ஒரு பார்க்வெட் கோப்பை எவ்வாறு உருவாக்குவது என்று பார்ப்போம்.

5 பதிவுகளுடன் PySpark DataFrame ஐ உருவாக்கி, 'industry_parquet' பார்க்வெட் கோப்பில் எழுதுவோம்.

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

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

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

# தொழில் விவரங்களைச் சேமிக்கும் டேட்டாஃப்ரேமை உருவாக்கவும்

industry_df = linuxhint_spark_app.createDataFrame([வரிசை(வகை==) 'வேளாண்மை' ,பகுதி= 'அமெரிக்கா' ,
மதிப்பீடு= 'சூடான' ,மொத்த_ஊழியர்கள்= 100 ),

வரிசை(வகை= 'வேளாண்மை' ,பகுதி= 'இந்தியா' ,மதிப்பீடு= 'சூடான' ,மொத்த_ஊழியர்கள்= 200 ),

வரிசை(வகை= 'வளர்ச்சி' ,பகுதி= 'அமெரிக்கா' ,மதிப்பீடு= 'சூடான' ,மொத்த_ஊழியர்கள்= 100 ),

வரிசை(வகை= 'கல்வி' ,பகுதி= 'அமெரிக்கா' ,மதிப்பீடு= 'கூல்' ,மொத்த_ஊழியர்கள்= 400 ),

வரிசை(வகை= 'கல்வி' ,பகுதி= 'அமெரிக்கா' ,மதிப்பீடு= 'சூடான' ,மொத்த_ஊழியர்கள்= இருபது )

])

# உண்மையான தரவுச்சட்டம்

industry_df.show()

# parquet கோப்பில் தொழில்_df ஐ எழுதவும்

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

வெளியீடு:

இது 5 பதிவுகளை வைத்திருக்கும் DataFrame ஆகும்.

முந்தைய DataFrameக்கு ஒரு பார்க்வெட் கோப்பு உருவாக்கப்பட்டது. இங்கே, நீட்டிப்புடன் கூடிய எங்கள் கோப்பு பெயர் “part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet”. இந்த கோப்பை முழு டுடோரியலிலும் பயன்படுத்துகிறோம்.

PySpark DataFrame இல் பார்க்வெட் கோப்பைப் படிக்கவும்

எங்களிடம் பார்க்வெட் கோப்பு உள்ளது. இந்த கோப்பை read.parquet() செயல்பாட்டைப் பயன்படுத்தி படித்து, PySpark DataFrame இல் ஏற்றுவோம்.

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

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

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

# பார்க்வெட் ஆப்ஜெக்ட்டில் இருந்து டேட்டாஃப்ரேமில் பார்க்வெட் கோப்பைப் படிக்கவும்.

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

# பார்க்வெட்-டேட்டா ஃபிரேமிலிருந்து_டேட்டாஃப்ரேமைக் காட்டவும்

dataframe_from_parquet.show()

வெளியீடு:

பார்க்வெட் கோப்பிலிருந்து உருவாக்கப்பட்ட ஷோ() முறையைப் பயன்படுத்தி டேட்டாஃப்ரேமைக் காண்பிக்கிறோம்.

பார்க்வெட் கோப்புடன் SQL வினவல்கள்

DataFrame இல் ஏற்றிய பிறகு, SQL அட்டவணைகளை உருவாக்கி, DataFrame இல் உள்ள தரவைக் காண்பிக்க முடியும். நாம் ஒரு தற்காலிக பார்வையை உருவாக்கி, பார்க்வெட் கோப்பிலிருந்து உருவாக்கப்பட்ட டேட்டாஃப்ரேமிலிருந்து பதிவுகளை திரும்பப் பெற SQL கட்டளைகளைப் பயன்படுத்த வேண்டும்.

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

'Sectors' என்ற பெயரிடப்பட்ட ஒரு தற்காலிக காட்சியை உருவாக்கி, DataFrame இல் பதிவுகளைக் காண்பிக்க SELECT கட்டளையைப் பயன்படுத்தவும். இதை நீங்கள் குறிப்பிடலாம் பயிற்சி Spark - SQL இல் ஒரு பார்வையை எவ்வாறு உருவாக்குவது என்பதை விளக்குகிறது.

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

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

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).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:

முந்தைய VIEW ஐப் பயன்படுத்தி, SQL வினவலை எழுதவும்:

  1. 'இந்தியா' சார்ந்த துறைகளில் இருந்து அனைத்து பதிவுகளையும் காட்ட.
  2. 100 க்கும் அதிகமான பணியாளருடன் உள்ள துறைகளில் இருந்து அனைத்து பதிவுகளையும் காட்ட.
# 'இந்தியா' விற்குச் சொந்தமான அனைத்துப் பதிவுகளையும் காட்ட வினவல்.

linuxhint_spark_app.sql( 'பகுதி='இந்தியா' என்ற பகுதிகளிலிருந்து * தேர்ந்தெடுக்கவும்' ).show()

# 100 க்கும் அதிகமான பணியாளர்கள் உள்ள துறைகளில் இருந்து அனைத்து பதிவுகளையும் காட்ட வினவல்

linuxhint_spark_app.sql( 'மொத்தம்_ஊழியர்கள்>100 உள்ள துறைகளில் இருந்து * தேர்ந்தெடுக்கவும்' ).show()

வெளியீடு:

'இந்தியா' என்ற பகுதியில் ஒரு பதிவு மட்டுமே உள்ளது மற்றும் 100 க்கும் அதிகமான பணியாளர்களுடன் இரண்டு பதிவுகள் உள்ளன.

PySpark SQL க்கு பார்க்வெட் கோப்பைப் படிக்கவும்

முதலில், CREATE கட்டளையைப் பயன்படுத்தி ஒரு VIEW ஐ உருவாக்க வேண்டும். SQL வினவலில் உள்ள “பாதை” முக்கிய சொல்லைப் பயன்படுத்தி, நாம் பார்க்வெட் கோப்பை Spark SQL க்கு படிக்கலாம். பாதைக்குப் பிறகு, கோப்பின் பெயர்/இடத்தை நாம் குறிப்பிட வேண்டும்.

தொடரியல்:

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

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

'Sector2' என்ற பெயரில் ஒரு தற்காலிக காட்சியை உருவாக்கி அதில் பார்க்வெட் கோப்பைப் படிக்கவும். sql() செயல்பாட்டைப் பயன்படுத்தி, பார்வையில் இருக்கும் அனைத்து பதிவுகளையும் காண்பிக்க தேர்ந்தெடுக்கப்பட்ட வினவலை எழுதவும்.

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

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

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

# பார்க்வெட் கோப்பை Spark- SQL இல் படிக்கவும்

linuxhint_spark_app.sql( பார்கெட் விருப்பங்களைப் பயன்படுத்தி 'தற்காலிக காட்சி பிரிவு 2 ஐ உருவாக்கவும் (பாதை' பகுதி-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )

# Sector2 இலிருந்து அனைத்து பதிவுகளையும் காண்பிக்க வினவல்

linuxhint_spark_app.sql( 'Sector2 இலிருந்து * தேர்ந்தெடு' ).show()

வெளியீடு:

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

'ஹாட்' அல்லது 'கூல்' என்ற மதிப்பீட்டில் எல்லா பதிவுகளையும் காட்ட முந்தைய பார்வையைப் பயன்படுத்தி வினவலை எழுதவும்.

# செக்டார்2 இலிருந்து அனைத்து பதிவுகளையும் ரேட்டிங்-ஹாட் அல்லது கூல் உடன் காட்ட வினவல்.

linuxhint_spark_app.sql( 'Sector2 இலிருந்து * தேர்ந்தெடு ).show()

வெளியீடு:

'ஹாட்' அல்லது 'கூல்' மதிப்பீட்டில் மூன்று பதிவுகள் உள்ளன.

முடிவுரை

PySpark இல், write.parquet() செயல்பாடு DataFrame ஐ பார்க்வெட் கோப்பில் எழுதுகிறது. read.parquet() செயல்பாடானது parquet கோப்பை PySpark DataFrame அல்லது வேறு எந்த DataSource க்கும் படிக்கிறது. PySpark DataFrame மற்றும் PySpark அட்டவணையில் பார்க்வெட் கோப்பை எவ்வாறு படிப்பது என்பதை நாங்கள் கற்றுக்கொண்டோம். இந்த டுடோரியலின் ஒரு பகுதியாக, PySpark DataFrame இலிருந்து அட்டவணைகளை எவ்வாறு உருவாக்குவது மற்றும் WHERE விதியைப் பயன்படுத்தி தரவை எவ்வாறு வடிகட்டுவது என்பதையும் நாங்கள் விவாதித்தோம்.