Pyspark.sql.DataFrame.selectExpr()
selectexpr() ఫంక్షన్ కాలమ్లు/ఎక్స్ప్రెషన్ల సెట్ను తీసుకుంటుంది మరియు పేర్కొన్న ఎక్స్ప్రెషన్లు/నిలువు వరుసల ఆధారంగా డేటాఫ్రేమ్ను అందిస్తుంది. కామాతో వేరు చేయబడిన ఈ ఫంక్షన్లో బహుళ వ్యక్తీకరణలను పేర్కొనవచ్చు. డేటాఫ్రేమ్ను ప్రదర్శించడానికి, మేము షో()/కలెక్ట్() ఫంక్షన్లను ఉపయోగించవచ్చు.
సింటాక్స్:
pyspark_DataFrame_object.selectExpr(“నిలువు వరుసలు”/”వ్యక్తీకరణలు”)
ఇక్కడ, pyspark_DataFrame_object అనేది ఇన్పుట్ PySpark DataFrame.
దృశ్యం 1: నిలువు వరుసలను ఎంచుకోండి
ఈ దృష్టాంతంలో, selectExpr() ఫంక్షన్ని ఉపయోగించి PySpark DataFrame నుండి నిర్దిష్ట నిలువు వరుసలను ఎలా ఎంచుకోవాలో చూద్దాం.
ఉపయోగించిన వ్యక్తీకరణ 'existing_column as new_name'. ఇక్కడ, ప్రస్తుత_నిలువు అనేది డేటాఫ్రేమ్లో ఉన్న నిలువు వరుస పేరు మరియు ఇది కొత్త_పేరు (అలియాసింగ్)గా ప్రదర్శించబడుతుంది.
ఉదాహరణ:
5 అడ్డు వరుసలు మరియు నిలువు వరుసలతో “agri_df” పేరుతో PySpark DataFrameని సృష్టించండి. 'Soil_status' మరియు 'Soil_Type' నిలువు వరుసలను 'STATUS' మరియు 'TYPE'గా పొందండి.
పైస్పార్క్ దిగుమతిpyspark.sql దిగుమతి SparkSession నుండి
linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()
5 అడ్డు వరుసలు మరియు 5 నిలువు వరుసలతో # వ్యవసాయ డేటా
అగ్రి =[{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 2500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 3500 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'భారతదేశం' },
{ 'నేల_రకం' : ఏదీ లేదు , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 210 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'UK' },
{ 'నేల_రకం' : 'ఇతర' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 1000 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'ఇసుక' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'భారతదేశం' }]
# పై డేటా నుండి డేటాఫ్రేమ్ను సృష్టించండి
agri_df = linuxhint_spark_app.createDataFrame(agri)
# నేల_స్థితి మరియు నేల_రకాన్ని 'STATUS' మరియు 'TYPE'గా పొందండి.
agri_df.selectExpr( 'STATUS వలె నేల_స్థితి' , 'TYPE వలె నేల_రకం' )షో()
అవుట్పుట్:
దృశ్యం 2: షరతులతో కూడిన వ్యక్తీకరణలను పేర్కొనడం
ఈ దృష్టాంతంలో, మేము selectExpr() ఫంక్షన్లోని పరిస్థితులను ఎలా మూల్యాంకనం చేయాలో చూద్దాం.
ఉపయోగించిన వ్యక్తీకరణ “existing_column ఆపరేటర్ విలువ”. ఇక్కడ, ప్రస్తుత_నిలువు అనేది డేటాఫ్రేమ్లో ఉన్న నిలువు వరుస పేరు మరియు మేము ఈ నిలువు వరుసలోని ప్రతి విలువను స్ట్రింగ్/విలువతో పోల్చాము.
ఉదాహరణ 1:
దేశం 'USA' కాదా అని తనిఖీ చేయండి. ఈక్వల్టో (=) ఆపరేటర్ ఇక్కడ ఉపయోగించబడుతుంది.
పైస్పార్క్ దిగుమతిpyspark.sql దిగుమతి SparkSession నుండి
linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()
5 అడ్డు వరుసలు మరియు 5 నిలువు వరుసలతో # వ్యవసాయ డేటా
అగ్రి =[{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 2500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 3500 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'భారతదేశం' },
{ 'నేల_రకం' : ఏదీ లేదు , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 210 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'UK' },
{ 'నేల_రకం' : 'ఇతర' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 1000 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'ఇసుక' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'భారతదేశం' }]
# పై డేటా నుండి డేటాఫ్రేమ్ను సృష్టించండి
agri_df = linuxhint_spark_app.createDataFrame(agri)
# దేశం 'USA' కాదా అని తనిఖీ చేయండి.
agri_df.selectExpr( 'దేశం = 'USA'' )షో()
అవుట్పుట్:
ఉదాహరణ 2:
నేల_రకం NULL కాదా అని తనిఖీ చేయండి. NULL కీవర్డ్ విలువ NULL కాదా అని తనిఖీ చేస్తుంది. అది శూన్యంగా ఉంటే, నిజం తిరిగి ఇవ్వబడుతుంది. లేకపోతే, తప్పు తిరిగి ఇవ్వబడుతుంది. అంతిమ వ్యక్తీకరణ “Soil_Type IS NULL”
పైస్పార్క్ దిగుమతిpyspark.sql దిగుమతి SparkSession నుండి
linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()
5 అడ్డు వరుసలు మరియు 5 నిలువు వరుసలతో # వ్యవసాయ డేటా
అగ్రి =[{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 2500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 3500 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'భారతదేశం' },
{ 'నేల_రకం' : ఏదీ లేదు , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 210 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'UK' },
{ 'నేల_రకం' : 'ఇతర' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 1000 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'ఇసుక' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'భారతదేశం' }]
# పై డేటా నుండి డేటాఫ్రేమ్ను సృష్టించండి
agri_df = linuxhint_spark_app.createDataFrame(agri)
# నేల_రకం NULL కాదా అని తనిఖీ చేయండి.
agri_df.selectExpr( 'నేల_రకం శూన్యం' )షో()
అవుట్పుట్:
దృశ్యం 3: వ్యక్తీకరణలను మూల్యాంకనం చేయడం
ఈ దృష్టాంతంలో, గణిత వ్యక్తీకరణలను ఎలా పేర్కొనాలో చూద్దాం. ఉపయోగించిన వ్యక్తీకరణ “existing_column mathematical_expression”.
ఉదాహరణ:
- అసలు 'ఎకరాలు' నిలువు వరుసను ప్రదర్శించండి.
- 'ఎకరాలు' నిలువు వరుసకు 100 జోడించండి.
- 'ఎకరాలు' నిలువు వరుస నుండి 100 తీసివేయండి.
- 'ఎకరాలు' నిలువు వరుసతో 100ని గుణించండి.
- 'ఎకరాలు' నిలువు వరుసను 100 ద్వారా విభజించండి.
pyspark.sql దిగుమతి SparkSession నుండి
linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()
5 అడ్డు వరుసలు మరియు 5 నిలువు వరుసలతో # వ్యవసాయ డేటా
అగ్రి =[{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 2500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 3500 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'భారతదేశం' },
{ 'నేల_రకం' : ఏదీ లేదు , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 210 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'UK' },
{ 'నేల_రకం' : 'ఇతర' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 1000 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'ఇసుక' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'భారతదేశం' }]
# పై డేటా నుండి డేటాఫ్రేమ్ను సృష్టించండి
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Acres నిలువు వరుసను తీసివేయడానికి, జోడించడానికి, విభజించడానికి మరియు గుణించడానికి 4 వ్యక్తీకరణలను వ్రాయండి.
agri_df.selectExpr( 'ఎకరాలు' , 'ఎకరాలు - 100' , 'ఎకరాలు * 100' , 'ఎకరాలు + 100' , 'ఎకరాలు / 100' )షో()
అవుట్పుట్:
దృష్టాంతం 4: మొత్తం విధులను వర్తింపజేయడం
SUM(column_name) - ఇది పేర్కొన్న నిలువు వరుసలో మొత్తం విలువను అంచనా వేస్తుంది.
MEAN(column_name) - ఇది పేర్కొన్న నిలువు వరుసలో సగటు విలువను అంచనా వేస్తుంది.
MIN(నిలువు_పేరు) – ఇది పేర్కొన్న నిలువు వరుసలోని అన్ని మూలకాలలో కనీస మూలకాన్ని అందిస్తుంది.
MAX(column_name) – ఇది పేర్కొన్న నిలువు వరుసలోని అన్ని మూలకాలలో గరిష్ట మూలకాన్ని అందిస్తుంది.
ఉదాహరణ:
- 'ఎకరాలు' యొక్క మొత్తం, సగటు, గణన, కనిష్ట మరియు గరిష్ట అంశాలను కనుగొనండి.
- 'Soil_status' నిలువు వరుసలో కనిష్ట మరియు గరిష్ట అంశాలను కనుగొనండి.
pyspark.sql దిగుమతి SparkSession నుండి
linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()
5 అడ్డు వరుసలు మరియు 5 నిలువు వరుసలతో # వ్యవసాయ డేటా
అగ్రి =[{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 2500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'నలుపు' , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 3500 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'భారతదేశం' },
{ 'నేల_రకం' : ఏదీ లేదు , 'నీటిపారుదల_లభ్యత' : 'అవును' , 'ఎకరాలు' : 210 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'UK' },
{ 'నేల_రకం' : 'ఇతర' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 1000 , 'నేల_స్థితి' : 'తడి' ,
'దేశం' : 'USA' },
{ 'నేల_రకం' : 'ఇసుక' , 'నీటిపారుదల_లభ్యత' : 'లేదు' , 'ఎకరాలు' : 500 , 'నేల_స్థితి' : 'పొడి' ,
'దేశం' : 'భారతదేశం' }]
# పై డేటా నుండి డేటాఫ్రేమ్ను సృష్టించండి
agri_df = linuxhint_spark_app.createDataFrame(agri)
# మొత్తం కార్యకలాపాలు
agri_df.selectExpr( 'మొత్తం(ఎకరాలు)' , 'సగటు(ఎకరాలు)' , 'COUNT(ఎకరాలు)' , 'AVG(ఎకరాలు)' , 'MIN(ఎకరాలు)' ,
'MAX(ఎకరాలు)' )షో()
agri_df.selectExpr( 'MIN(నేల_స్థితి)' , 'MAX(నేల_స్థితి)' )షో()
అవుట్పుట్:
ముగింపు
మేము సెలెక్ట్ఎక్స్పిఆర్() ఫంక్షన్ గురించి చర్చించాము, ఇది కాలమ్లు/ఎక్స్ప్రెషన్ల సెట్లను తీసుకుంటుంది మరియు పేర్కొన్న ఎక్స్ప్రెషన్లు/నిలువు వరుసల ఆధారంగా డేటాఫ్రేమ్ను అందిస్తుంది. ఇందులో భాగంగా, మేము selectExpr() వర్తించే నాలుగు ప్రధాన దృశ్యాలను నేర్చుకున్నాము. కామాతో వేరు చేయబడిన ఈ ఫంక్షన్లో బహుళ వ్యక్తీకరణలను పేర్కొనవచ్చు. selectExpr() ఫంక్షన్ని ఉపయోగించడానికి తాత్కాలిక వీక్షణను సృష్టించాల్సిన అవసరం లేదు.