PySpark இல் டேபிள் டேட்டாவைப் படிப்பது மற்றும் எழுதுவது எப்படி

Pyspark Il Tepil Tettavaip Patippatu Marrum Elutuvatu Eppati



டேபிள் வடிவில் தரவு ஏற்றப்பட்டால், பைஸ்பார்க்கில் தரவு செயலாக்கம் வேகமாக இருக்கும். இதன் மூலம், SQl வெளிப்பாடுகளைப் பயன்படுத்தி, செயலாக்கம் விரைவாக இருக்கும். எனவே, PySpark DataFrame/RDD ஐ செயலாக்கத்திற்கு அனுப்பும் முன் அதை டேபிளாக மாற்றுவது சிறந்த அணுகுமுறையாகும். இன்று, PySpark DataFrame இல் டேபிள் தரவை எவ்வாறு படிப்பது, PySpark DataFrame ஐ அட்டவணையில் எழுதுவது மற்றும் உள்ளமைக்கப்பட்ட செயல்பாடுகளைப் பயன்படுத்தி இருக்கும் டேபிளில் புதிய DataFrame ஐ எவ்வாறு செருகுவது என்பதைப் பார்ப்போம். போகலாம்!

Pyspark.sql.DataFrameWriter.saveAsTable()

முதலில், எழுது.saveAsTable() செயல்பாட்டைப் பயன்படுத்தி ஏற்கனவே உள்ள PySpark DataFrame ஐ அட்டவணையில் எப்படி எழுதுவது என்று பார்ப்போம். டேட்டாஃப்ரேமை டேபிளில் எழுத, டேபிள் பெயர் மற்றும் மோட்கள், பார்ஷன்பை போன்ற பிற விருப்ப அளவுருக்கள் தேவை. இது ஒரு பார்க்வெட் கோப்பாக சேமிக்கப்படுகிறது.

தொடரியல்:







dataframe_obj.write.saveAsTable(பாதை/அட்டவணை_பெயர், முறை, பகிர்வு மூலம்,...)
  1. அட்டவணை_பெயர் என்பது dataframe_obj இலிருந்து உருவாக்கப்பட்ட அட்டவணையின் பெயர்.
  2. பயன்முறை அளவுருவைப் பயன்படுத்தி அட்டவணையின் தரவைச் சேர்க்கலாம்/மேலெழுதலாம்.
  3. இந்த வழங்கப்பட்ட நெடுவரிசைகளில் உள்ள மதிப்புகளின் அடிப்படையில் பகிர்வுகளை உருவாக்க partitionBy ஒற்றை/பல நெடுவரிசைகளை எடுக்கும்.

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

5 வரிசைகள் மற்றும் 4 நெடுவரிசைகளுடன் PySpark DataFrame ஐ உருவாக்கவும். இந்த டேட்டாஃப்ரேமை 'Agri_Table1' என்ற அட்டவணையில் எழுதவும்.



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

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

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

5 வரிசைகள் மற்றும் 5 நெடுவரிசைகள் கொண்ட # விவசாய தரவு

அக்ரி =[{ 'மண்_வகை' : 'கருப்பு' , 'நீர்ப்பாசனம்_ இருப்பு' : 'இல்லை' , 'ஏக்கர்' : 2500 , 'மண்_நிலை' : 'உலர்ந்த' ,
'நாடு' : 'அமெரிக்கா' },

{ 'மண்_வகை' : 'கருப்பு' , 'நீர்ப்பாசனம்_ இருப்பு' : 'ஆம்' , 'ஏக்கர்' : 3500 , 'மண்_நிலை' : 'ஈரமான' ,
'நாடு' : 'இந்தியா' },

{ 'மண்_வகை' : 'சிவப்பு' , 'நீர்ப்பாசனம்_ இருப்பு' : 'ஆம்' , 'ஏக்கர்' : 210 , 'மண்_நிலை' : 'உலர்ந்த' ,
'நாடு' : 'யுகே' },

{ 'மண்_வகை' : 'மற்றவை' , 'நீர்ப்பாசனம்_ இருப்பு' : 'இல்லை' , 'ஏக்கர்' : 1000 , 'மண்_நிலை' : 'ஈரமான' ,
'நாடு' : 'அமெரிக்கா' },

{ 'மண்_வகை' : 'மணல்' , 'நீர்ப்பாசனம்_ இருப்பு' : 'இல்லை' , 'ஏக்கர்' : 500 , 'மண்_நிலை' : 'உலர்ந்த' ,
'நாடு' : 'இந்தியா' }]



# மேலே உள்ள தரவுகளிலிருந்து டேட்டாஃப்ரேமை உருவாக்கவும்

agri_df = linuxhint_spark_app.createDataFrame(agri)

agri_df.show()

# மேலே உள்ள DataFrame-ஐ அட்டவணையில் எழுதவும்.

agri_df.coalesce( 1 ).write.saveAsTable( 'அக்ரி_டேபிள்1' )

வெளியீடு:







முந்தைய PySpark டேட்டாவுடன் ஒரு பார்க்வெட் கோப்பு உருவாக்கப்பட்டிருப்பதைக் காணலாம்.



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

முந்தைய டேட்டாஃப்ரேமைக் கருத்தில் கொண்டு, 'நாடு' நெடுவரிசையில் உள்ள மதிப்புகளின் அடிப்படையில் பதிவுகளைப் பிரிப்பதன் மூலம் 'Agri_Table2' ஐ அட்டவணையில் எழுதவும்.

# மேலே உள்ள DataFrameஐ அட்டவணையில் பகிர்வு மூலம் அளவுருவுடன் எழுதவும்

agri_df.write.saveAsTable( 'Agri_Table2' ,பகிர்வு மூலம்=[ 'நாடு' ])

வெளியீடு:

'நாடு' நெடுவரிசையில் மூன்று தனித்துவமான மதிப்புகள் உள்ளன - 'இந்தியா', 'யுகே' மற்றும் 'அமெரிக்கா'. எனவே, மூன்று பகிர்வுகள் உருவாக்கப்படுகின்றன. ஒவ்வொரு பகிர்வும் பார்க்வெட் கோப்புகளை வைத்திருக்கிறது.

Pyspark.sql.DataFrameReader.table()

spark.read.table() செயல்பாட்டைப் பயன்படுத்தி PySpark DataFrame இல் அட்டவணையை ஏற்றுவோம். இது பாதை/அட்டவணை பெயர் என்ற ஒரே ஒரு அளவுருவை மட்டுமே எடுக்கும். இது நேரடியாக அட்டவணையை PySpark DataFrame இல் ஏற்றுகிறது மற்றும் PySpark DataFrame இல் பயன்படுத்தப்படும் அனைத்து SQL செயல்பாடுகளும் இந்த ஏற்றப்பட்ட DataFrame இல் பயன்படுத்தப்படலாம்.

தொடரியல்:

spark_app.read.table(பாதை/‘டேபிள்_பெயர்’)

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

உதாரணமாக:

“loaded_data” என பெயரிடப்பட்ட DataFrame இல் “Agri_Table1” அட்டவணையை ஏற்றவும்.

loaded_data = linuxhint_spark_app.read.table( 'அக்ரி_டேபிள்1' )

loaded_data.show()

வெளியீடு:

PySpark DataFrame இல் அட்டவணை ஏற்றப்பட்டிருப்பதைக் காணலாம்.

SQL வினவல்களை இயக்குதல்

இப்போது, ​​spark.sql() செயல்பாட்டைப் பயன்படுத்தி ஏற்றப்பட்ட DataFrame இல் சில SQL வினவல்களை இயக்குகிறோம்.

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

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

# எங்கே உட்பிரிவு

linuxhint_spark_app.sql( 'Agri_Table1 இலிருந்து * தேர்ந்தெடுக்கவும் மண்_நிலை='உலர்' ' ).show()

linuxhint_spark_app.sql( 'Agri_Table1 இலிருந்து * தேர்ந்தெடுங்கள் எங்கே ஏக்கர் > 2000' ).show()

வெளியீடு:

  1. முதல் வினவல் DataFrame இலிருந்து அனைத்து நெடுவரிசைகளையும் பதிவுகளையும் காட்டுகிறது.
  2. இரண்டாவது வினவல் 'மண்_நிலை' நெடுவரிசையின் அடிப்படையில் பதிவுகளைக் காட்டுகிறது. 'உலர்' உறுப்புடன் மூன்று பதிவுகள் மட்டுமே உள்ளன.
  3. கடைசி வினவல் 2000க்கும் அதிகமான 'ஏக்கர்' கொண்ட இரண்டு பதிவுகளை வழங்குகிறது.

Pyspark.sql.DataFrameWriter.insertInto()

insertInto() செயல்பாட்டைப் பயன்படுத்தி, DataFrame ஐ ஏற்கனவே உள்ள அட்டவணையில் சேர்க்கலாம். நெடுவரிசைப் பெயர்களை வரையறுத்து, அதை அட்டவணையில் செருகுவதற்கு selectExpr() உடன் இந்தச் செயல்பாட்டைப் பயன்படுத்தலாம். இந்த செயல்பாடு tableName ஐ ஒரு அளவுருவாகவும் எடுத்துக்கொள்கிறது.

தொடரியல்:

DataFrame_obj.write.insertInto('Table_name')

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

உதாரணமாக:

இரண்டு பதிவுகளுடன் ஒரு புதிய DataFrame ஐ உருவாக்கி அவற்றை 'Agri_Table1' அட்டவணையில் செருகவும்.

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

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

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

# 2 வரிசைகள் கொண்ட விவசாயத் தரவு

அக்ரி =[{ 'மண்_வகை' : 'மணல்' , 'நீர்ப்பாசனம்_ இருப்பு' : 'இல்லை' , 'ஏக்கர்' : 2500 , 'மண்_நிலை' : 'உலர்ந்த' ,
'நாடு' : 'அமெரிக்கா' },

{ 'மண்_வகை' : 'மணல்' , 'நீர்ப்பாசனம்_ இருப்பு' : 'இல்லை' , 'ஏக்கர்' : 1200 , 'மண்_நிலை' : 'ஈரமான' ,
'நாடு' : 'ஜப்பான்' }]

# மேலே உள்ள தரவுகளிலிருந்து டேட்டாஃப்ரேமை உருவாக்கவும்

agri_df2 = linuxhint_spark_app.createDataFrame(agri)

agri_df2.show()

# write.insertInto()

agri_df2.selectExpr( 'ஏக்கர்' , 'நாடு' , 'நீர்ப்பாசனம்_ இருப்பு' , 'மண்_வகை' ,
'மண்_நிலை' ).write.insertInto( 'அக்ரி_டேபிள்1' )

# இறுதி வேளாண்_அட்டவணை 1 ஐக் காட்டு

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

வெளியீடு:

இப்போது, ​​DataFrame இல் உள்ள மொத்த வரிசைகளின் எண்ணிக்கை 7 ஆகும்.

முடிவுரை

எழுது.saveAsTable() செயல்பாட்டைப் பயன்படுத்தி PySpark DataFrame ஐ அட்டவணையில் எப்படி எழுதுவது என்பதை இப்போது நீங்கள் புரிந்துகொள்கிறீர்கள். இது அட்டவணையின் பெயர் மற்றும் பிற விருப்ப அளவுருக்களை எடுக்கும். பின்னர், spark.read.table() செயல்பாட்டைப் பயன்படுத்தி இந்த அட்டவணையை PySpark DataFrame இல் ஏற்றினோம். இது பாதை/அட்டவணை பெயர் என்ற ஒரே ஒரு அளவுருவை மட்டுமே எடுக்கும். ஏற்கனவே உள்ள அட்டவணையில் புதிய DataFrame ஐ சேர்க்க விரும்பினால், insertInto() செயல்பாட்டைப் பயன்படுத்தவும்.