पायस्पार्क सेलेक्टएक्सपीआर ()

Payasparka Selekta Eksapi Ara



PySpark में selectExpr () फ़ंक्शन का उपयोग करके, हम बिना किसी तालिका या दृश्य के सीधे अभिव्यक्ति का मूल्यांकन कर सकते हैं। यह फ़ंक्शन pyspark.sql.DataFrame मॉड्यूल में उपलब्ध है जो चयन () विधि के समान है। SelectExpr () के साथ, हम कॉलम प्रदर्शित कर सकते हैं, कॉलम पर फ़ंक्शंस लागू कर सकते हैं, एक्सप्रेशन का मूल्यांकन कर सकते हैं, एकत्रीकरण संचालन कर सकते हैं, आदि। एक समय में कई कॉलम का मूल्यांकन/निर्दिष्ट करना भी संभव है।

Pyspark.sql.DataFrame.selectExpr ()

Selectexpr() फ़ंक्शन एक्सप्रेशन के कॉलम/सेट लेता है और निर्दिष्ट एक्सप्रेशन/कॉलम के आधार पर डेटाफ़्रेम लौटाता है। इस फ़ंक्शन में एकाधिक भाव निर्दिष्ट किए जा सकते हैं जो अल्पविराम द्वारा अलग किए गए हैं। DataFrame को प्रदर्शित करने के लिए, हम शो () / कलेक्ट () फ़ंक्शन का उपयोग कर सकते हैं।

वाक्य - विन्यास:







pyspark_DataFrame_object.selectExpr ('कॉलम'/'अभिव्यक्ति')

यहाँ, pyspark_DataFrame_object इनपुट PySpark DataFrame है।



परिदृश्य 1: कॉलम का चयन करें

इस परिदृश्य में, हम देखेंगे कि सेलेक्टएक्सप्र () फ़ंक्शन का उपयोग करके PySpark DataFrame से विशेष कॉलम कैसे चुनें।



उपयोग की जाने वाली अभिव्यक्ति 'मौजूदा_column as new_name' है। यहां, मौजूदा_कॉलम कॉलम नाम है जो डेटाफ्रेम में मौजूद है और इसे new_name (एलियासिंग) के रूप में प्रदर्शित किया जाता है।





उदाहरण:

5 पंक्तियों और स्तंभों के साथ 'agri_df' नाम का एक PySpark DataFrame बनाएं। 'STATUS' और 'TYPE' के रूप में 'Soil_status' और 'Soil_Type' कॉलम प्राप्त करें।

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# खेती डेटा 5 पंक्तियों और 5 कॉलम के साथ

कृषि = [{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 2500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 3500 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'भारत' },

{ 'मिट्टी के प्रकार' : कोई नहीं , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 210 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'यूके' },

{ 'मिट्टी के प्रकार' : 'अन्य' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 1000 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'रेत' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'भारत' }]



# उपरोक्त डेटा से डेटाफ़्रेम बनाएं

agri_df = linuxhint_spark_app.createDataFrame (कृषि)

# मिट्टी_स्थिति और मिट्टी_प्रकार को 'स्थिति' और 'प्रकार' के रूप में प्राप्त करें।

agri_df.selectExpr ( 'मिट्टी_स्थिति स्थिति के रूप में' , 'Soil_Type as TYPE' )।दिखाना()

आउटपुट:



परिदृश्य 2: सशर्त भाव निर्दिष्ट करना

इस परिदृश्य में, हम देखेंगे कि selectExpr() फ़ंक्शन के भीतर स्थितियों का मूल्यांकन कैसे करें।

उपयोग की जाने वाली अभिव्यक्ति 'मौजूदा_कॉलम ऑपरेटर मान' है। यहां, मौजूदा_कॉलम कॉलम नाम है जो डेटाफ्रेम में मौजूद है और हम इस कॉलम में प्रत्येक मान की तुलना स्ट्रिंग/वैल्यू के साथ करते हैं।

उदाहरण 1:

जांचें कि देश 'यूएसए' है या नहीं। यहां इक्वलटो (=) ऑपरेटर का उपयोग किया जाता है।

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# खेती डेटा 5 पंक्तियों और 5 कॉलम के साथ

कृषि = [{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 2500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 3500 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'भारत' },

{ 'मिट्टी के प्रकार' : कोई नहीं , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 210 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'यूके' },

{ 'मिट्टी के प्रकार' : 'अन्य' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 1000 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'रेत' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'भारत' }]



# उपरोक्त डेटा से डेटाफ़्रेम बनाएं

agri_df = linuxhint_spark_app.createDataFrame (कृषि)

# जांचें कि देश 'यूएसए' है या नहीं।

agri_df.selectExpr ( 'देश = 'यूएसए'' )।दिखाना()

आउटपुट:

उदाहरण 2:

जाँच करें कि क्या मिट्टी_प्रकार NULL है या नहीं। NULL कीवर्ड जाँचता है कि मान NULL है या नहीं। यदि यह शून्य है, तो सत्य वापस आ जाता है। अन्यथा, झूठा वापस आ जाता है। अंतिम अभिव्यक्ति 'Soil_Type IS NULL' है

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# खेती डेटा 5 पंक्तियों और 5 कॉलम के साथ

कृषि = [{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 2500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 3500 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'भारत' },

{ 'मिट्टी के प्रकार' : कोई नहीं , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 210 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'यूके' },

{ 'मिट्टी के प्रकार' : 'अन्य' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 1000 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'रेत' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'भारत' }]



# उपरोक्त डेटा से डेटाफ़्रेम बनाएं

agri_df = linuxhint_spark_app.createDataFrame (कृषि)

# जाँच करें कि क्या मिट्टी का प्रकार NULL है या नहीं।

agri_df.selectExpr ( 'मृदा_प्रकार शून्य है' )।दिखाना()

आउटपुट:

परिदृश्य 3: भावों का मूल्यांकन

इस परिदृश्य में, हम देखेंगे कि गणितीय व्यंजकों को कैसे निर्दिष्ट किया जाए। उपयोग की जाने वाली अभिव्यक्ति 'मौजूदा_स्तंभ गणितीय_अभिव्यक्ति' है।

उदाहरण:

  1. वास्तविक 'एकड़' कॉलम प्रदर्शित करें।
  2. 'एकड़' कॉलम में 100 जोड़ें।
  3. 'एकड़' कॉलम से 100 घटाएं।
  4. 100 को 'एकड़' कॉलम से गुणा करें।
  5. 'एकड़' कॉलम को 100 से विभाजित करें।
pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# खेती डेटा 5 पंक्तियों और 5 कॉलम के साथ

कृषि = [{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 2500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 3500 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'भारत' },

{ 'मिट्टी के प्रकार' : कोई नहीं , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 210 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'यूके' },

{ 'मिट्टी के प्रकार' : 'अन्य' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 1000 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'रेत' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'भारत' }]



# उपरोक्त डेटा से डेटाफ़्रेम बनाएं

agri_df = linuxhint_spark_app.createDataFrame (कृषि)

# एकड़ कॉलम को घटाने, जोड़ने, विभाजित करने और गुणा करने के लिए 4 भाव लिखें।

agri_df.selectExpr ( 'एकड़' , 'एकड़ - 100' , 'एकड़ * 100' , 'एकड़ + 100' , 'एकड़ / 100' )।दिखाना()

आउटपुट:

परिदृश्य 4: कुल कार्यों को लागू करना

योग(स्तंभ_नाम) - यह निर्दिष्ट कॉलम में कुल मूल्य का मूल्यांकन करता है।

मतलब(स्तंभ_नाम) – यह निर्दिष्ट कॉलम में औसत मूल्य का मूल्यांकन करता है।

न्यूनतम (कॉलम_नाम) - यह निर्दिष्ट कॉलम में सभी तत्वों के बीच न्यूनतम तत्व लौटाता है।

मैक्स (कॉलम_नाम) - यह निर्दिष्ट कॉलम में सभी तत्वों के बीच अधिकतम तत्व लौटाता है।

उदाहरण:

  1. 'एकड़' का कुल, औसत, गिनती, न्यूनतम और अधिकतम तत्व खोजें।
  2. 'Soil_status' कॉलम में न्यूनतम और अधिकतम तत्व खोजें।
pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# खेती डेटा 5 पंक्तियों और 5 कॉलम के साथ

कृषि = [{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 2500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'काला' , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 3500 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'भारत' },

{ 'मिट्टी के प्रकार' : कोई नहीं , 'सिंचाई_उपलब्धता' : 'हाँ' , 'एकड़' : 210 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'यूके' },

{ 'मिट्टी के प्रकार' : 'अन्य' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 1000 , 'मृदा_स्थिति' : 'गीला' ,
'देश' : 'अमेरीका' },

{ 'मिट्टी के प्रकार' : 'रेत' , 'सिंचाई_उपलब्धता' : 'नहीं' , 'एकड़' : 500 , 'मृदा_स्थिति' : 'सूखा' ,
'देश' : 'भारत' }]



# उपरोक्त डेटा से डेटाफ़्रेम बनाएं

agri_df = linuxhint_spark_app.createDataFrame (कृषि)

# सकल संचालन

agri_df.selectExpr ( 'राशि (एकड़)' , 'मीन (एकड़)' , 'काउंट (एकड़)' , 'औसत (एकड़)' , 'मिन (एकड़)' ,
'मैक्स (एकड़)' )।दिखाना()

agri_df.selectExpr ( 'न्यूनतम (मृदा_स्थिति)' , 'मैक्स (मृदा_स्थिति)' )।दिखाना()

आउटपुट:

निष्कर्ष

हमने सेलेक्टएक्सप्र () फ़ंक्शन के बारे में चर्चा की, जो एक्सप्रेशन के कॉलम/सेट लेता है और निर्दिष्ट एक्सप्रेशन/कॉलम के आधार पर डेटाफ़्रेम लौटाता है। इसके भाग के रूप में, हमने चार प्रमुख परिदृश्यों को सीखा जिसमें selectExpr() लागू होता है। इस फ़ंक्शन में एकाधिक अभिव्यक्तियाँ निर्दिष्ट की जा सकती हैं जो अल्पविराम द्वारा अलग की जाती हैं। SelectExpr() फ़ंक्शन का उपयोग करने के लिए अस्थायी दृश्य बनाने की कोई आवश्यकता नहीं है।