PySpark SelectExpr()

Pyspark Selectexpr



PySpark இல் selectExpr() செயல்பாட்டைப் பயன்படுத்தி, எந்த அட்டவணை அல்லது VIEW ஐ உருவாக்காமல் ஒரு வெளிப்பாட்டை நேரடியாக மதிப்பீடு செய்யலாம். இந்த செயல்பாடு pyspark.sql.DataFrame தொகுதியில் கிடைக்கிறது, இது தேர்ந்தெடுக்கப்பட்ட() முறையைப் போன்றது. selectExpr(), நாம் நெடுவரிசைகளைக் காட்டலாம், நெடுவரிசைகளில் செயல்பாடுகளைப் பயன்படுத்தலாம், வெளிப்பாடுகளை மதிப்பீடு செய்யலாம், திரட்டல் செயல்பாடுகளைச் செய்யலாம், மேலும் பல நெடுவரிசைகளை மதிப்பிடலாம்/குறிப்பிடலாம்.

Pyspark.sql.DataFrame.selectExpr()

selectexpr() செயல்பாடு நெடுவரிசைகள்/வெளிப்பாடுகளின் தொகுப்பை எடுத்து குறிப்பிட்ட வெளிப்பாடுகள்/நெடுவரிசைகளின் அடிப்படையில் DataFrame ஐ வழங்குகிறது. கமாவால் பிரிக்கப்பட்ட இந்தச் செயல்பாட்டில் பல வெளிப்பாடுகளைக் குறிப்பிடலாம். DataFrame ஐ காட்ட, நாம் show()/collect() செயல்பாடுகளை பயன்படுத்தலாம்.

தொடரியல்:







pyspark_DataFrame_object.selectExpr(“நெடுவரிசைகள்”/”வெளிப்பாடுகள்”)

இங்கே, pyspark_DataFrame_object என்பது PySpark DataFrame உள்ளீடு ஆகும்.



காட்சி 1: நெடுவரிசைகளைத் தேர்ந்தெடுக்கவும்

இந்த சூழ்நிலையில், PySpark DataFrame இலிருந்து குறிப்பிட்ட நெடுவரிசைகளை selectExpr() செயல்பாட்டைப் பயன்படுத்தி எவ்வாறு தேர்ந்தெடுப்பது என்று பார்ப்போம்.



பயன்படுத்தப்படும் வெளிப்பாடு 'existing_column as new_name'. இங்கே, தற்போதுள்ள_நெடுவரிசை என்பது DataFrame இல் இருக்கும் நெடுவரிசைப் பெயராகும், மேலும் அது new_name (Aliasing) ஆகக் காட்டப்படும்.





உதாரணமாக:

5 வரிசைகள் மற்றும் நெடுவரிசைகளுடன் “agri_df” என்ற பெயருடைய PySpark DataFrame ஐ உருவாக்கவும். 'Soil_status' மற்றும் 'Soil_Type' நெடுவரிசைகளை 'STATUS' மற்றும் 'TYPE' ஆகப் பெறவும்.

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

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

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

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

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

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

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

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

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



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

agri_df = linuxhint_spark_app.createDataFrame(agri)

# மண்_நிலை மற்றும் மண்_வகையை 'STATUS' மற்றும் 'TYPE' ஆக பெறவும்.

agri_df.selectExpr( 'STATUS ஆக மண்_நிலை' , 'மண்_வகை TYPE ஆக' ).show()

வெளியீடு:



காட்சி 2: நிபந்தனை வெளிப்பாடுகளைக் குறிப்பிடுதல்

இந்த சூழ்நிலையில், selectExpr() செயல்பாட்டில் உள்ள நிபந்தனைகளை எவ்வாறு மதிப்பிடுவது என்று பார்ப்போம்.

பயன்படுத்தப்படும் வெளிப்பாடு 'existing_column operator value' ஆகும். இங்கே, dataFrame இல் இருக்கும் நெடுவரிசையின் பெயர் ஏற்கனவே_column ஆகும், மேலும் இந்த நெடுவரிசையில் உள்ள ஒவ்வொரு மதிப்பையும் சரம்/மதிப்புடன் ஒப்பிடுகிறோம்.

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

நாடு 'அமெரிக்கா' இல்லையா என்பதைச் சரிபார்க்கவும். Equalto (=) ஆபரேட்டர் இங்கே பயன்படுத்தப்படுகிறது.

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

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.selectExpr( 'நாடு = 'அமெரிக்கா'' ).show()

வெளியீடு:

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

மண்_வகை பூஜ்யமா இல்லையா என்பதைச் சரிபார்க்கவும். NULL முக்கிய சொல் மதிப்பு NULL இல்லையா என்பதை சரிபார்க்கிறது. அது பூஜ்யமாக இருந்தால், உண்மை திரும்பும். இல்லையெனில், தவறானது திரும்பப் பெறப்படும். இறுதி வெளிப்பாடு “மண்_வகை பூஜ்யமானது”

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

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.selectExpr( 'மண்_வகை பூஜ்யமானது' ).show()

வெளியீடு:

காட்சி 3: வெளிப்பாடுகளை மதிப்பீடு செய்தல்

இந்த சூழ்நிலையில், கணித வெளிப்பாடுகளை எவ்வாறு குறிப்பிடுவது என்று பார்ப்போம். பயன்படுத்தப்படும் வெளிப்பாடு 'existing_column mathematical_expression' ஆகும்.

உதாரணமாக:

  1. உண்மையான 'ஏக்கர்' நெடுவரிசையைக் காட்டு.
  2. 'ஏக்கர்' நெடுவரிசையில் 100ஐச் சேர்க்கவும்.
  3. 'ஏக்கர்' நெடுவரிசையில் இருந்து 100 ஐக் கழிக்கவும்.
  4. 'ஏக்கர்' நெடுவரிசையுடன் 100 ஐ பெருக்கவும்.
  5. 'ஏக்கர்' நெடுவரிசையை 100 ஆல் வகுக்கவும்.
பைஸ்பார்க் இறக்குமதி

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

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

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

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

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

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

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

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



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

agri_df = linuxhint_spark_app.createDataFrame(agri)

# ஏக்கர் நெடுவரிசையைக் கழிக்கவும், கூட்டவும், வகுக்கவும் மற்றும் பெருக்கவும் 4 வெளிப்பாடுகளை எழுதவும்.

agri_df.selectExpr( 'ஏக்கர்' , 'ஏக்கர் - 100' , 'ஏக்கர் * 100' , 'ஏக்கர் + 100' , 'ஏக்கர் / 100' ).show()

வெளியீடு:

காட்சி 4: மொத்த செயல்பாடுகளைப் பயன்படுத்துதல்

SUM(column_name) - இது குறிப்பிட்ட நெடுவரிசையில் மொத்த மதிப்பை மதிப்பிடுகிறது.

MEAN(column_name) - இது குறிப்பிட்ட நெடுவரிசையில் சராசரி மதிப்பை மதிப்பிடுகிறது.

MIN(column_name) - இது குறிப்பிட்ட நெடுவரிசையில் உள்ள அனைத்து உறுப்புகளிலும் குறைந்தபட்ச உறுப்பை வழங்குகிறது.

MAX(column_name) - இது குறிப்பிட்ட நெடுவரிசையில் உள்ள அனைத்து உறுப்புகளிலும் அதிகபட்ச உறுப்பை வழங்குகிறது.

உதாரணமாக:

  1. 'ஏக்கர்' இன் மொத்த, சராசரி, எண்ணிக்கை, குறைந்தபட்சம் மற்றும் அதிகபட்ச கூறுகளைக் கண்டறியவும்.
  2. 'Soil_status' நெடுவரிசையில் குறைந்தபட்ச மற்றும் அதிகபட்ச கூறுகளைக் கண்டறியவும்.
பைஸ்பார்க் இறக்குமதி

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.selectExpr( 'தொகை(ஏக்கர்)' , 'சராசரி (ஏக்கர்)' , 'COUNT(ஏக்கர்)' , 'ஏவிஜி(ஏக்கர்)' , 'MIN(ஏக்கர்)' ,
'அதிகபட்சம் (ஏக்கர்)' ).show()

agri_df.selectExpr( 'MIN(மண்_நிலை)' , 'MAX(மண்_நிலை)' ).show()

வெளியீடு:

முடிவுரை

குறிப்பிட்ட எக்ஸ்ப்ரெஷன்கள்/நெடுவரிசைகளின் அடிப்படையில் பத்திகள்/வெளிப்பாடுகளின் தொகுப்புகள் மற்றும் டேட்டாஃப்ரேமை வழங்கும் selectExpr() செயல்பாட்டைப் பற்றி நாங்கள் விவாதித்தோம். இதன் ஒரு பகுதியாக, selectExpr() பொருந்தக்கூடிய நான்கு முக்கிய காட்சிகளைக் கற்றுக்கொண்டோம். காற்புள்ளியால் பிரிக்கப்பட்ட இந்தச் செயல்பாட்டில் பல வெளிப்பாடுகளைக் குறிப்பிடலாம். SelectExpr() செயல்பாட்டைப் பயன்படுத்த, தற்காலிகக் காட்சியை உருவாக்க வேண்டிய அவசியமில்லை.