పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ - డేటాఫ్రేమ్‌లతో పైస్పార్క్ ప్రోగ్రామింగ్



ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ బ్లాగులో, మీరు అపాచీ స్పార్క్‌లో పరివర్తనాలు మరియు చర్యల గురించి బహుళ ఉదాహరణలతో నేర్చుకుంటారు.

ఈ రోజుల్లో పరిశ్రమలో డేటాఫ్రేమ్‌లు ఒక సంచలనం. పైథాన్, స్కాలా మరియు ఆర్ వంటి డేటా విశ్లేషణ కోసం ఉపయోగించే ప్రసిద్ధ భాషలతో ప్రజలు దీనిని ఉపయోగించుకుంటారు.అదనంగా, బిగ్ డేటా కోసం సంక్లిష్ట విశ్లేషణ మరియు ముంగింగ్ పనులను నిర్వహించాల్సిన అవసరం, పైథాన్ ఫర్ స్పార్క్ లేదా ఈ రోజు పరిశ్రమలో ఎక్కువగా కోరుకునే నైపుణ్యాలలో ఒకటిగా మారింది.కాబట్టి, ప్రతి ఒక్కరూ దీన్ని ఎందుకు ఎక్కువగా ఉపయోగిస్తున్నారు? దీన్ని మాతో అర్థం చేసుకుందాం పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ బ్లాగ్. ఈ బ్లాగులో నేను ఈ క్రింది విషయాలను కవర్ చేస్తాను:





పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్: డేటాఫ్రేమ్‌లు అంటే ఏమిటి?

డేటాఫ్రేమ్‌లు సాధారణంగా డేటా నిర్మాణాన్ని సూచిస్తాయి, ఇది పట్టిక ప్రకృతిలో ఉంటుంది. ఇది వరుసలను సూచిస్తుంది, వీటిలో ప్రతి ఒక్కటి అనేక పరిశీలనలను కలిగి ఉంటుంది. వరుసలు వివిధ రకాల డేటా ఆకృతులను కలిగి ఉంటాయి ( భిన్నమైనవి ), అయితే కాలమ్‌లో ఒకే డేటా రకం డేటా ఉంటుంది ( సజాతీయ ). డేటా ఫ్రేమ్‌లు సాధారణంగా డేటాకు అదనంగా కొన్ని మెటాడేటాను కలిగి ఉంటాయి, ఉదాహరణకు కాలమ్ మరియు అడ్డు వరుస పేర్లు.

Dataframe-Pyspark-Dataframe-Tutorial



డేటాఫ్రేమ్‌లు ఏమీ లేవని మేము చెప్పగలం, కానీ 2-డైమెన్షనల్ డేటా స్ట్రక్చర్, ఇది SQL టేబుల్ లేదా స్ప్రెడ్‌షీట్ మాదిరిగానే ఉంటుంది. ఇప్పుడు ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్‌తో ముందుకు సాగండి మరియు మనకు పైస్పార్క్ డేటాఫ్రేమ్ ఎందుకు అవసరమో అర్థం చేసుకోండి?

మాకు డేటాఫ్రేమ్‌లు ఎందుకు అవసరం?

1. స్ట్రక్చర్డ్ మరియు సెమీ స్ట్రక్చర్డ్ డేటాను ప్రాసెస్ చేయడం



డేటాఫ్రేమ్‌లుప్రాసెస్ చేయడానికి రూపొందించబడ్డాయికు పెద్దది నిర్మాణాత్మక మరియు సెమీ స్ట్రక్చర్డ్ డేటా సేకరణ . స్పార్క్ డేటాఫ్రేమ్‌లోని పరిశీలనలు పేరున్న నిలువు వరుసల క్రింద నిర్వహించబడతాయి, ఇది డేటాఫ్రేమ్ యొక్క స్కీమాను అర్థం చేసుకోవడానికి అపాచీ స్పార్క్కు సహాయపడుతుంది. ఈ ప్రశ్నలపై అమలు ప్రణాళికను ఆప్టిమైజ్ చేయడానికి ఇది స్పార్క్ సహాయపడుతుంది. ఇది కూడా నిర్వహించగలదు పెటాబైట్స్ డేటా.

2.ఎస్ లైసెన్సింగ్ మరియు డైసింగ్

డేటా ఫ్రేమ్ A.PI లు సాధారణంగా విస్తృతమైన పద్ధతులకు మద్దతు ఇస్తాయి ముక్కలు మరియు డైసింగ్ సమాచారం. ఇందులో ఉన్నాయిఆపరేషన్వరుసలు, నిలువు వరుసలు మరియు కణాలను పేరు లేదా సంఖ్య ద్వారా ఎంచుకోవడం, అడ్డు వరుసలను ఫిల్టర్ చేయడం వంటివి. గణాంక డేటా సాధారణంగా చాలా గజిబిజిగా ఉంటుంది మరియు తప్పిపోయిన మరియు తప్పు విలువలు మరియు పరిధి ఉల్లంఘనలను కలిగి ఉంటుంది. కాబట్టి డేటా ఫ్రేమ్‌ల యొక్క క్లిష్టమైన లక్షణం తప్పిపోయిన డేటా యొక్క స్పష్టమైన నిర్వహణ.

3.డేటా సోర్సెస్

డేటాఫ్రేమ్‌కు విస్తృత శ్రేణి డేటా ఫార్మాట్ మరియు మూలాలకు మద్దతు ఉంది, మేము దీనిని తరువాత ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ బ్లాగులో పరిశీలిస్తాము. వారు వివిధ వనరుల నుండి డేటాను తీసుకోవచ్చు.

4. బహుళ భాషలకు మద్దతు

పైథాన్, ఆర్, స్కాలా, జావా వంటి వివిధ భాషలకు దీనికి API మద్దతు ఉంది,ఇది వేర్వేరు ప్రోగ్రామింగ్ నేపథ్యాలు కలిగిన వ్యక్తులు ఉపయోగించడం సులభం చేస్తుంది.

క్రొత్త నవీకరణలను పొందడానికి మా యూట్యూబ్ ఛానెల్‌కు సభ్యత్వాన్ని పొందండి ..!

డేటాఫ్రేమ్‌ల లక్షణాలు

  • డేటాఫ్రేమ్‌లు పంపిణీ ప్రకృతిలో, ఇది తప్పు సహనం మరియు అధికంగా లభించే డేటా నిర్మాణాన్ని చేస్తుంది.
  • సోమరితనం మూల్యాంకనం ఒక వ్యక్తీకరణ యొక్క విలువ అవసరమయ్యే వరకు దాని మూల్యాంకనాన్ని కలిగి ఉన్న మూల్యాంకన వ్యూహం. ఇది పదేపదే మూల్యాంకనం చేయకుండా చేస్తుంది. స్పార్క్లో సోమరితనం మూల్యాంకనం అంటే చర్య ప్రేరేపించబడే వరకు అమలు ప్రారంభం కాదు. స్పార్క్లో, స్పార్క్ పరివర్తనాలు సంభవించినప్పుడు సోమరితనం యొక్క చిత్రం వస్తుంది.
  • డేటాఫ్రేమ్‌లు మార్పులేనిది ప్రకృతి లో. మార్పులేనిది అంటే అది ఒక వస్తువు, దీని స్థితి సవరించబడదు అది సృష్టించబడిన తరువాత.కానీ మనం రూపాంతరం చెందగలముదానివర్తింపజేయడం ద్వారా విలువలుఒక నిర్దిష్టపరివర్తన, RDD లలో వలె.

పైస్పార్క్ డేటాఫ్రేమ్ సోర్సెస్

పైస్పార్క్‌లోని డేటాఫ్రేమ్‌లను అనేక విధాలుగా సృష్టించవచ్చు:

డేటాను a ద్వారా లోడ్ చేయవచ్చు CSV, JSON, XML లేదా పారేకెట్ ఫైల్. ఇది ఇప్పటికే ఉన్నదాన్ని ఉపయోగించి కూడా సృష్టించబడుతుంది ఆర్డీడీ మరియు వంటి ఇతర డేటాబేస్ ద్వారా అందులో నివశించే తేనెటీగలు లేదా కాసాండ్రా అలాగే. ఇది HDFS లేదా స్థానిక ఫైల్ సిస్టమ్ నుండి డేటాను కూడా తీసుకోవచ్చు.

డేటాఫ్రేమ్ సృష్టి

ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ బ్లాగుతో ముందుకు సాగండి మరియు డేటాఫ్రేమ్‌లను ఎలా సృష్టించాలో అర్థం చేసుకోండి.

మేము ఉద్యోగి మరియు విభాగం ఉదంతాలను సృష్టిస్తాము.

pyspark.sql నుండి * ఉద్యోగి = వరుస ('ఫస్ట్‌నేమ్', 'లాస్ట్‌నేమ్', 'ఇమెయిల్', 'జీతం') ఉద్యోగి 1 = ఉద్యోగి ('బాషర్', 'ఆర్మ్‌బ్రస్ట్', 'bash@edureka.co', 100000) ఉద్యోగి 2 = ఉద్యోగి ('డేనియల్', 'మెంగ్', 'daniel@stanford.edu', 120000) ఉద్యోగి 3 = ఉద్యోగి ('మురియెల్', ఏదీ లేదు, 'muriel@waterloo.edu', 140000) ఉద్యోగి 4 = ఉద్యోగి ('రాచెల్', 'వెండెల్ ',' rach_3@edureka.co ', 160000) ఉద్యోగి 5 = ఉద్యోగి (' జాచ్ ',' గాలిఫియానాకిస్ ',' zach_g@edureka.co ', 160000) ముద్రణ (ఉద్యోగి [0]) ముద్రణ (ఉద్యోగి 3) విభాగం 1 = వరుస (ఐడి) = '123456', పేరు = 'హెచ్‌ఆర్') విభాగం 2 = అడ్డు వరుస (ఐడి = '789012', పేరు = 'ఓపిఎస్') విభాగం 3 = అడ్డు వరుస (ఐడి = '345678', పేరు = 'ఎఫ్‌ఎన్') విభాగం 4 = వరుస (ఐడి = ' 901234 ', పేరు =' DEV ')

తరువాత, మేము ఉద్యోగి మరియు విభాగాల నుండి డిపార్ట్‌మెంట్ విత్ఎంప్లాయిస్ ఉదాహరణను సృష్టిస్తాము

departmentWithEmployees1 = వరుస (విభాగం = విభాగం 1, ఉద్యోగులు = [ఉద్యోగి 1, ఉద్యోగి 2, ఉద్యోగి 5]) విభాగంవిత్ఎంప్లోయీస్ 2 = వరుస (విభాగం = విభాగం 2, ఉద్యోగులు = [ఉద్యోగి 3, ఉద్యోగి 4]) విభాగంవిత్ఎంప్లోయీస్ 3 = వరుస (విభాగం = విభాగం 3, ఉద్యోగులు = [ఉద్యోగి 1, ఉద్యోగి 4, ఉద్యోగి 3 ]) departmentWithEmployees4 = వరుస (విభాగం = విభాగం 4, ఉద్యోగులు = [ఉద్యోగి 2, ఉద్యోగి 3])

వరుసల జాబితా నుండి మా డేటాఫ్రేమ్‌ను సృష్టించండి

విభాగాలు విత్ఎంప్లోయీస్_సెక్ = [డిపార్ట్మెంట్ విత్ఎంప్లోయీస్ 1, డిపార్ట్మెంట్ విత్ఎంప్లోయీస్ 2] dframe = spark.createDataFrame (విభాగాలు విత్ఎంప్లోయీస్_సెక్) డిస్ప్లే (dframe) dframe.show ()

పైస్పార్క్ డేటాఫ్రేమ్స్ ఉదాహరణ 1: ఫిఫా ప్రపంచ కప్ డేటాసెట్

ఇక్కడ మేము ఫిఫా ప్రపంచ కప్ ప్లేయర్స్ డేటాసెట్ తీసుకున్నాము. మేము CSV ఆకృతిలో ఉన్న ఈ డేటాను లోడ్ చేయబోతున్నాముఒక లోకిడేటాఫ్రేమ్ ఆపై ఈ డేటాఫ్రేమ్‌లో చేయగలిగే విభిన్న పరివర్తనాలు మరియు చర్యల గురించి మేము తెలుసుకుంటాము.

CSV ఫైల్ నుండి డేటాను చదవడం

CSV ఫైల్ నుండి డేటాను లోడ్ చేద్దాం. ఇక్కడ మేము ఉపయోగించబోతున్నాం spark.read.csv డేటాను డేటాఫ్రేమ్ ఫిఫా_డిఎఫ్‌లోకి లోడ్ చేసే పద్ధతి. అసలు పద్ధతి spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = true) fifa_df.show ()

డేటాఫ్రేమ్ యొక్క స్కీమా

స్కీమాను పరిశీలించడానికి అంటే. డేటాఫ్రేమ్ యొక్క నిర్మాణం, మేము ఉపయోగిస్తాము printSchema పద్ధతి. ఇది డేటా రకంతో పాటు మా డేటాఫ్రేమ్‌లోని విభిన్న నిలువు వరుసలను మరియు నిర్దిష్ట కాలమ్ యొక్క శూన్య పరిస్థితులను ఇస్తుంది.

fifa_df.printSchema ()

కాలమ్ పేర్లు మరియు గణన (వరుసలు మరియు కాలమ్)

మేము ఒక నిర్దిష్ట డేటాఫ్రేమ్ యొక్క పేర్లు మరియు వరుసలు మరియు నిలువు వరుసల సంఖ్యను చూడాలనుకున్నప్పుడు, మేము ఈ క్రింది పద్ధతులను ఉపయోగిస్తాము.

fifa_df.columns // కాలమ్ పేర్లు fifa_df.count () // రో కౌంట్ లెన్ (fifa_df.columns) // కాలమ్ కౌంట్

37784 8

ప్రత్యేక కాలమ్‌ను వివరిస్తుంది

డేటాఫ్రేమ్ యొక్క ఏదైనా నిర్దిష్ట కాలమ్ యొక్క సారాంశాన్ని పరిశీలించాలనుకుంటే, మేము దానిని ఉపయోగిస్తాము వివరిస్తుంది పద్ధతి. ఈ పద్ధతి మాకు ఇచ్చిన కాలమ్ యొక్క గణాంక సారాంశాన్ని ఇస్తుంది, పేర్కొనకపోతే, ఇది డేటాఫ్రేమ్ యొక్క గణాంక సారాంశాన్ని అందిస్తుంది.

ఉదాహరణతో జావాలో అడాప్టర్ క్లాస్
fifa_df.describe ('కోచ్ పేరు'). చూపించు () fifa_df.describe ('స్థానం'). చూపించు ()

బహుళ నిలువు వరుసలను ఎంచుకోవడం

మేము డేటాఫ్రేమ్ నుండి నిర్దిష్ట నిలువు వరుసలను ఎంచుకోవాలనుకుంటే, మేము ఉపయోగిస్తాము ఎంచుకోండి పద్ధతి.

fifa_df.select ('ప్లేయర్ పేరు', 'కోచ్ పేరు'). చూపించు ()

విభిన్న బహుళ నిలువు వరుసలను ఎంచుకోవడం

fifa_df.select ('ప్లేయర్ పేరు', 'కోచ్ పేరు'). విభిన్న (). చూపించు ()

డేటాను ఫిల్టర్ చేస్తోంది

డేటాను ఫిల్టర్ చేయడానికి, పేర్కొన్న షరతు ప్రకారం, మేము ఉపయోగిస్తాము ఫిల్టర్ ఆదేశం. మ్యాచ్ ఐడి 1096 కు సమానంగా ఉండాలి అనే షరతు ఆధారంగా ఇక్కడ మేము మా డేటాఫ్రేమ్‌ను ఫిల్టర్ చేస్తున్నాము మరియు ఫిల్టర్ చేసిన అవుట్‌పుట్‌లో ఎన్ని రికార్డులు / అడ్డు వరుసలు ఉన్నాయో లెక్కిస్తున్నాము.

fifa_df.filter (fifa_df.MatchID == '1096'). చూపించు () fifa_df.filter (fifa_df.MatchID == '1096'). లెక్కింపు () //

ఫిల్టరింగ్ డేటా (బహుళ పారామితులు)

మేము బహుళ షరతుల (AND లేదా OR) ఆధారంగా మా డేటాను ఫిల్టర్ చేయవచ్చు

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). చూపించు ()

డేటాను క్రమబద్ధీకరించడం (ఆర్డర్‌బై)

మేము ఉపయోగించే డేటాను క్రమబద్ధీకరించడానికి ఆర్డర్ ద్వారా పద్ధతి. అప్రమేయంగా, ఇది ఆరోహణ క్రమంలో ఉంటుంది, కాని మనం దానిని అవరోహణ క్రమానికి మార్చవచ్చు.

fifa_df.orderBy (fifa_df.MatchID) .షో ()

పైస్పార్క్ డేటాఫ్రేమ్స్ ఉదాహరణ 2: సూపర్ హీరోస్ డేటాసెట్

డేటాను లోడ్ చేస్తోంది

ఇక్కడ మనం ఇంతకుముందు చేసిన విధంగానే డేటాను లోడ్ చేస్తాము.

Superhero_df = spark.read.csv ('file-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

డేటాను ఫిల్టర్ చేస్తోంది

సూపర్ హీరో_డిఎఫ్.ఫిల్టర్ (సూపర్ హీరో_డిఎఫ్.జెండర్ == 'మగ'). కౌంట్ () // మగ హీరోస్ కౌంట్ సూపర్ హీరో_డిఎఫ్.ఫిల్టర్ (సూపర్ హీరో_డిఎఫ్. జెండర్ == 'ఫిమేల్'). కౌంట్ () // ఫిమేల్ హీరోస్ కౌంట్

డేటాను సమూహపరచడం

గ్రూప్ బై పేర్కొన్న కాలమ్ ఆధారంగా డేటాఫ్రేమ్‌ను సమూహపరచడానికి ఉపయోగిస్తారు. ఇక్కడ, మేము రేస్ కాలమ్ ఆధారంగా డేటాఫ్రేమ్‌ను సమూహం చేస్తున్నాము మరియు తరువాత లెక్కించు ఫంక్షన్, మేము నిర్దిష్ట జాతి గణనను కనుగొనవచ్చు.

రేస్_డిఎఫ్ = సూపర్ హీరో_డిఎఫ్.గ్రూప్బీ ('రేస్') .కౌంట్ () .షో ()

SQL ప్రశ్నలను చేస్తోంది

మేము SQL ప్రశ్నలను నేరుగా ఏదైనా డేటాఫ్రేమ్‌కు పంపవచ్చు, దాని కోసం మనం డేటాఫ్రేమ్ నుండి పట్టికను సృష్టించాలి registerTempTable పద్ధతి ఆపై ఉపయోగించండి sqlContext.sql () SQL ప్రశ్నలను పాస్ చేయడానికి.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('సూపర్ హీరో_టేబుల్ నుండి * ఎంచుకోండి'). చూపించు ()

sqlContext.sql ('సూపర్ హీరో_టేబుల్ నుండి విభిన్నమైన (ఐ_కలర్) ఎంచుకోండి'). చూపించు ()

sqlContext.sql ('సూపర్ హీరో_టేబుల్ నుండి విభిన్నమైన (ఐ_కలర్) ఎంచుకోండి'). గణన ()

2. 3

sqlContext.sql ('సూపర్ హీరో_టేబుల్ నుండి గరిష్టంగా (బరువు) ఎంచుకోండి'). చూపించు ()

మరియు దీనితో, మేము ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ ముగింపుకు వచ్చాము.

కాబట్టి ఇది, గైస్!

పైస్పార్క్ డేటాఫ్రేమ్ అంటే ఏమిటో మీకు తెలుసా అని నేను ఆశిస్తున్నాను, ఇది పరిశ్రమలో ఎందుకు ఉపయోగించబడుతోంది మరియు ఈ పైస్పార్క్ డేటాఫ్రేమ్ ట్యుటోరియల్ బ్లాగులో దాని లక్షణాలు. అభినందనలు, మీరు ఇకపై డేటాఫ్రేమ్‌లకు క్రొత్తవారు కాదు. మీరు పైస్పార్క్ గురించి మరింత తెలుసుకోవాలనుకుంటే మరియు విభిన్న పరిశ్రమల వినియోగ కేసులను అర్థం చేసుకోవాలనుకుంటే, మా వద్ద చూడండి పైథాన్‌తో స్పార్క్ మరియు పైస్పార్క్ ట్యుటోరియల్ బ్లాగ్.