స్పార్క్ MLlib అపాచీ స్పార్క్ యొక్క మెషిన్ లెర్నింగ్ భాగం.స్పార్క్ యొక్క ప్రధాన ఆకర్షణలలో ఒకటి గణనను భారీగా స్కేల్ చేయగల సామర్థ్యం, మరియు యంత్ర అభ్యాస అల్గోరిథంల కోసం మీకు ఇది అవసరం. కానీ పరిమితి ఏమిటంటే అన్ని యంత్ర అభ్యాస అల్గోరిథంలను సమర్థవంతంగా సమాంతరంగా చేయలేము. ప్రతి అల్గోరిథం సమాంతరీకరణకు దాని స్వంత సవాళ్లను కలిగి ఉంది, ఇది టాస్క్ సమాంతరత లేదా డేటా సమాంతరత.
యంత్ర అభ్యాస అల్గోరిథంలు మరియు అనువర్తనాలను రూపొందించడానికి స్పార్క్ డి-ఫాక్టో ప్లాట్ఫామ్గా మారుతోంది.బాగా, మీరు తనిఖీ చేయవచ్చు బ్లాగుతో ముందుకు వెళ్ళే ముందు పరిశ్రమ నిపుణులచే నిర్వహించబడుతుంది.స్పార్క్ MLlib లో పనిచేసే డెవలపర్లు స్పార్క్ ఫ్రేమ్వర్క్లో మరింత మెషీన్ అల్గారిథమ్లను స్కేలబుల్ మరియు సంక్షిప్త పద్ధతిలో అమలు చేస్తున్నారు. ఈ బ్లాగ్ ద్వారా, మెషిన్ లెర్నింగ్, స్పార్క్ ఎంఎల్లిబ్, దాని యుటిలిటీస్, అల్గోరిథంలు మరియు మూవీ రికమండేషన్ సిస్టమ్ యొక్క పూర్తి వినియోగ కేసు యొక్క అంశాలను నేర్చుకుంటాము.
ఈ బ్లాగులో ఈ క్రింది విషయాలు కవర్ చేయబడతాయి:
- మెషిన్ లెర్నింగ్ అంటే ఏమిటి?
- స్పార్క్ MLlib అవలోకనం
- స్పార్క్ MLlib సాధనాలు
- MLlib అల్గోరిథంలు
- కేస్ - మూవీ రికమండేషన్ సిస్టమ్ ఉపయోగించండి
మెషిన్ లెర్నింగ్ అంటే ఏమిటి?
కృత్రిమ మేధస్సులో నమూనా గుర్తింపు మరియు గణన అభ్యాస సిద్ధాంతం యొక్క అధ్యయనం నుండి ఉద్భవించిన, యంత్ర అభ్యాసం డేటా నుండి నేర్చుకోగల మరియు అంచనాలను రూపొందించగల అల్గోరిథంల అధ్యయనం మరియు నిర్మాణాన్ని అన్వేషిస్తుంది - అటువంటి అల్గోరిథంలు డేటా-ఆధారిత అంచనాలు లేదా నిర్ణయాలు తీసుకోవడం ద్వారా ఖచ్చితంగా స్టాటిక్ ప్రోగ్రామ్ సూచనలను అనుసరిస్తాయి , నమూనా ఇన్పుట్ల నుండి మోడల్ను నిర్మించడం ద్వారా.
మూర్తి: యంత్ర అభ్యాస సాధనాలు
యంత్ర అభ్యాసం గణన గణాంకాలతో దగ్గరి సంబంధం కలిగి ఉంది, ఇది కంప్యూటర్ల వాడకం ద్వారా అంచనా వేయడంపై కూడా దృష్టి పెడుతుంది. ఇది గణిత ఆప్టిమైజేషన్తో బలమైన సంబంధాలను కలిగి ఉంది, ఇది పద్ధతులు, సిద్ధాంతం మరియు అనువర్తన డొమైన్లను ఫీల్డ్కు అందిస్తుంది. డేటా అనలిటిక్స్ రంగంలో, మెషీన్ లెర్నింగ్ అనేది సంక్లిష్ట నమూనాలు మరియు అల్గారిథమ్లను రూపొందించడానికి ఉపయోగించే ఒక పద్ధతి, ఇది వాణిజ్య ఉపయోగంలో ప్రిడిక్టివ్ అనలిటిక్స్ అని పిలుస్తారు.
యంత్ర అభ్యాస పనులలో మూడు వర్గాలు ఉన్నాయి:
- పర్యవేక్షించిన అభ్యాసం : పర్యవేక్షించబడిన అభ్యాసం అంటే మీకు ఇన్పుట్ వేరియబుల్స్ (x) మరియు అవుట్పుట్ వేరియబుల్ (Y) మరియు ఇన్పుట్ నుండి అవుట్పుట్ వరకు మ్యాపింగ్ ఫంక్షన్ తెలుసుకోవడానికి మీరు ఒక అల్గోరిథం ఉపయోగిస్తారు.
- పర్యవేక్షించబడని అభ్యాసం : పర్యవేక్షించబడని అభ్యాసం అనేది లేబుల్ చేయబడిన ప్రతిస్పందనలు లేకుండా ఇన్పుట్ డేటాను కలిగి ఉన్న డేటాసెట్ల నుండి అనుమానాలను గీయడానికి ఉపయోగించే యంత్ర అభ్యాస అల్గోరిథం.
- ఉపబల అభ్యాసం : కంప్యూటర్ ప్రోగ్రామ్ డైనమిక్ వాతావరణంతో సంకర్షణ చెందుతుంది, దీనిలో అది ఒక నిర్దిష్ట లక్ష్యాన్ని (వాహనాన్ని నడపడం లేదా ప్రత్యర్థిపై ఆట ఆడటం వంటివి) చేయాలి. ప్రోగ్రామ్ దాని సమస్య స్థలాన్ని నావిగేట్ చేస్తున్నందున రివార్డులు మరియు శిక్షల పరంగా అభిప్రాయాన్ని అందిస్తుంది.ఈ భావనను ఉపబల అభ్యాసం అంటారు.
స్పార్క్ MLlib అవలోకనం
అపాచీ స్పార్క్లో యంత్ర అభ్యాసాన్ని నిర్వహించడానికి స్పార్క్ MLlib ఉపయోగించబడుతుంది. MLlib జనాదరణ పొందిన అల్గోరిథంలు మరియు యుటిలిటీలను కలిగి ఉంది.
MLlib అవలోకనం:
- spark.mllib RDD ల పైన నిర్మించిన అసలు API ని కలిగి ఉంది. ఇది ప్రస్తుతం నిర్వహణ మోడ్లో ఉంది.
- spark.ml కోసం డేటాఫ్రేమ్ల పైన నిర్మించిన ఉన్నత స్థాయి API ని అందిస్తుందిML పైప్లైన్లను నిర్మిస్తోంది. spark.ml ప్రస్తుతానికి స్పార్క్ కోసం ప్రాథమిక యంత్ర అభ్యాస API.
స్పార్క్ MLlib సాధనాలు
స్పార్క్ MLlib కింది సాధనాలను అందిస్తుంది:
- ML అల్గోరిథంలు: ML అల్గోరిథంలు MLlib యొక్క ప్రధాన భాగాన్ని ఏర్పరుస్తాయి. వర్గీకరణ, రిగ్రెషన్, క్లస్టరింగ్ మరియు సహకార వడపోత వంటి సాధారణ అభ్యాస అల్గోరిథంలు వీటిలో ఉన్నాయి.
- లక్షణం: ఫీచర్ వెలికితీత, పరివర్తన, డైమెన్షియాలిటీ తగ్గింపు మరియు ఎంపిక ఫీచర్లో ఉన్నాయి.
- పైప్లైన్లు: ML పైప్లైన్లను నిర్మించడానికి, అంచనా వేయడానికి మరియు ట్యూన్ చేయడానికి పైప్లైన్లు సాధనాలను అందిస్తాయి.
- పట్టుదల: అల్గోరిథంలు, నమూనాలు మరియు పైప్లైన్లను సేవ్ చేయడానికి మరియు లోడ్ చేయడానికి నిలకడ సహాయపడుతుంది.
- యుటిలిటీస్: యుటిలిటీస్సరళ బీజగణితం, గణాంకాలు మరియు డేటా నిర్వహణ కోసం.
MLlib అల్గోరిథంలు
స్పార్క్ MLlib లోని ప్రసిద్ధ అల్గోరిథంలు మరియు యుటిలిటీలు:
- ప్రాథమిక గణాంకాలు
- రిగ్రెషన్
- వర్గీకరణ
- సిఫార్సు వ్యవస్థ
- క్లస్టరింగ్
- డైమెన్షియాలిటీ తగ్గింపు
- ఫీచర్ సంగ్రహణ
- సర్వోత్తమీకరణం
వీటిలో కొన్నింటిని వివరంగా చూద్దాం.
ప్రాథమిక గణాంకాలు
ప్రాథమిక గణాంకాలు యంత్ర అభ్యాస పద్ధతుల్లో అత్యంత ప్రాథమికమైనవి ఉన్నాయి. వీటితొ పాటు:
- సారాంశం గణాంకాలు : ఉదాహరణలలో సగటు, వ్యత్యాసం, గణన, గరిష్టంగా, నిమిషం మరియు నమ్నోన్జెరోస్ ఉన్నాయి.
- సహసంబంధాలు : స్పియర్మాన్ మరియు పియర్సన్ సహసంబంధాన్ని కనుగొనడానికి కొన్ని మార్గాలు.
- స్ట్రాటిఫైడ్ నమూనా : వీటిలో నమూనాబైకీ మరియు నమూనాబైకెఎక్సాక్ట్ ఉన్నాయి.
- పరికల్పన పరీక్ష : పియర్సన్ యొక్క చి-స్క్వేర్డ్ పరీక్ష పరికల్పన పరీక్షకు ఒక ఉదాహరణ.
- యాదృచ్ఛిక డేటా జనరేషన్ : యాదృచ్ఛిక డేటాను ఉత్పత్తి చేయడానికి రాండమ్ఆర్డిడిలు, సాధారణ మరియు పాయిజన్ ఉపయోగించబడతాయి.
రిగ్రెషన్
రిగ్రెషన్ విశ్లేషణ అనేది వేరియబుల్స్ మధ్య సంబంధాలను అంచనా వేయడానికి ఒక గణాంక ప్రక్రియ. డిపెండెంట్ వేరియబుల్ మరియు ఒకటి లేదా అంతకంటే ఎక్కువ స్వతంత్ర చరరాశుల మధ్య సంబంధంపై దృష్టి కేంద్రీకరించినప్పుడు అనేక వేరియబుల్స్ మోడలింగ్ మరియు విశ్లేషించడానికి ఇది చాలా పద్ధతులను కలిగి ఉంటుంది. మరింత ప్రత్యేకంగా, రిగ్రెషన్ విశ్లేషణ స్వతంత్ర వేరియబుల్స్లో ఏదైనా వైవిధ్యంగా ఉన్నప్పుడు డిపెండెంట్ వేరియబుల్ యొక్క విలక్షణ విలువ ఎలా మారుతుందో అర్థం చేసుకోవడానికి సహాయపడుతుంది, ఇతర స్వతంత్ర చరరాశులు స్థిరంగా ఉంటాయి.
రిగ్రెషన్ విశ్లేషణ అంచనా మరియు అంచనా కోసం విస్తృతంగా ఉపయోగించబడుతుంది, ఇక్కడ దాని ఉపయోగం యంత్ర అభ్యాస రంగంతో గణనీయమైన అతివ్యాప్తిని కలిగి ఉంటుంది. రిగ్రెషన్ విశ్లేషణ స్వతంత్ర చరరాశులలో ఏది ఆధారిత వేరియబుల్కు సంబంధించినదో అర్థం చేసుకోవడానికి మరియు ఈ సంబంధాల రూపాలను అన్వేషించడానికి కూడా ఉపయోగించబడుతుంది. పరిమితం చేయబడిన పరిస్థితులలో, స్వతంత్ర మరియు ఆధారిత చరరాశుల మధ్య కారణ సంబంధాలను to హించడానికి రిగ్రెషన్ విశ్లేషణను ఉపయోగించవచ్చు.
వర్గీకరణ
వర్గీకరణ వర్గం సభ్యత్వం తెలిసిన పరిశీలనలు (లేదా ఉదంతాలు) కలిగిన డేటా యొక్క శిక్షణా సమితి ఆధారంగా, కొత్త పరిశీలన ఏ వర్గాలకు (ఉప-జనాభా) గుర్తించాలో సమస్య. ఇది నమూనా గుర్తింపుకు ఒక ఉదాహరణ.
ఇక్కడ, ఒక ఉదాహరణ ఇచ్చిన ఇమెయిల్ను “స్పామ్” లేదా “నాన్-స్పామ్” తరగతులకు కేటాయించడం లేదా రోగి యొక్క గమనించిన లక్షణాల ద్వారా వివరించిన విధంగా ఇచ్చిన రోగికి రోగ నిర్ధారణను కేటాయించడం (లింగం, రక్తపోటు, కొన్ని లక్షణాలు లేకపోవడం లేదా లేకపోవడం, మొదలైనవి).
సిఫార్సు వ్యవస్థ
TO సిఫార్సు వ్యవస్థ సమాచార వడపోత వ్యవస్థ యొక్క ఉపవర్గం, ఇది వినియోగదారు ఒక వస్తువుకు ఇచ్చే “రేటింగ్” లేదా “ప్రాధాన్యత” ని అంచనా వేయడానికి ప్రయత్నిస్తుంది. సిఫార్సు వ్యవస్థలు ఇటీవలి సంవత్సరాలలో బాగా ప్రాచుర్యం పొందాయి మరియు చలనచిత్రాలు, సంగీతం, వార్తలు, పుస్తకాలు, పరిశోధనా వ్యాసాలు, శోధన ప్రశ్నలు, సామాజిక ట్యాగ్లు మరియు సాధారణంగా ఉత్పత్తులతో సహా వివిధ రంగాలలో ఉపయోగించబడతాయి.
సిఫారసు వ్యవస్థలు సాధారణంగా రెండు మార్గాలలో ఒకదానిలో సిఫారసుల జాబితాను ఉత్పత్తి చేస్తాయి - సహకార మరియు కంటెంట్-ఆధారిత వడపోత లేదా వ్యక్తిత్వ-ఆధారిత విధానం ద్వారా.
- సహకార వడపోత వినియోగదారు యొక్క గత ప్రవర్తన (గతంలో కొనుగోలు చేసిన లేదా ఎంచుకున్న అంశాలు మరియు / లేదా ఆ వస్తువులకు ఇచ్చిన సంఖ్యా రేటింగ్లు) మరియు ఇతర వినియోగదారులు తీసుకున్న ఇలాంటి నిర్ణయాల నుండి ఒక నమూనాను రూపొందించే విధానాలు. ఈ మోడల్ వినియోగదారుకు ఆసక్తి ఉన్న అంశాలను (లేదా వస్తువులకు రేటింగ్స్) అంచనా వేయడానికి ఉపయోగించబడుతుంది.
- కంటెంట్ ఆధారిత ఫిల్టరింగ్ సారూప్య లక్షణాలతో అదనపు అంశాలను సిఫారసు చేయడానికి విధానాలు ఒక అంశం యొక్క వివిక్త లక్షణాల శ్రేణిని ఉపయోగిస్తాయి.
ఇంకా, ఈ విధానాలను తరచుగా హైబ్రిడ్ సిఫారసు వ్యవస్థలుగా కలుపుతారు.
క్లస్టరింగ్
క్లస్టరింగ్ ఒకే సమూహంలోని వస్తువులు (క్లస్టర్ అని పిలుస్తారు) ఇతర సమూహాలలో (క్లస్టర్లు) కాకుండా ఒకదానికొకటి సమానంగా (ఏదో ఒక కోణంలో లేదా మరొకటి) ఉండే విధంగా వస్తువుల సమూహాన్ని సమూహపరిచే పని. కాబట్టి, ఇది అన్వేషణాత్మక డేటా మైనింగ్ యొక్క ప్రధాన పని, మరియు యంత్ర అభ్యాసం, నమూనా గుర్తింపు, చిత్ర విశ్లేషణ, సమాచార పునరుద్ధరణ, బయోఇన్ఫర్మేటిక్స్, డేటా కంప్రెషన్ మరియు కంప్యూటర్ గ్రాఫిక్స్ సహా అనేక రంగాలలో ఉపయోగించే గణాంక డేటా విశ్లేషణకు ఒక సాధారణ సాంకేతికత.
డైమెన్షియాలిటీ తగ్గింపు
డైమెన్షియాలిటీ తగ్గింపు ప్రధాన వేరియబుల్స్ సమితిని పొందడం ద్వారా పరిశీలనలో ఉన్న యాదృచ్ఛిక వేరియబుల్స్ సంఖ్యను తగ్గించే ప్రక్రియ. దీనిని ఫీచర్ ఎంపిక మరియు ఫీచర్ వెలికితీతగా విభజించవచ్చు.
- ఫీచర్ ఎంపిక: ఫీచర్ ఎంపిక అసలు వేరియబుల్స్ యొక్క ఉపసమితిని కనుగొంటుంది (లక్షణాలు లేదా గుణాలు అని కూడా పిలుస్తారు).
- ఫీచర్ సంగ్రహణ: ఇది హై-డైమెన్షనల్ స్పేస్ లోని డేటాను తక్కువ కొలతలు గల ప్రదేశంగా మారుస్తుంది. ప్రిన్సిపల్ కాంపోనెంట్ అనాలిసిస్ (పిసిఎ) లో వలె డేటా పరివర్తన సరళంగా ఉండవచ్చు, కాని చాలా నాన్ లీనియర్ డైమెన్షియాలిటీ రిడక్షన్ టెక్నిక్స్ కూడా ఉన్నాయి.
ఫీచర్ సంగ్రహణ
ఫీచర్ సంగ్రహణ కొలిచిన డేటా యొక్క ప్రారంభ సమితి నుండి మొదలవుతుంది మరియు సమాచార మరియు అనవసరంగా ఉండటానికి ఉద్దేశించిన ఉత్పన్నమైన విలువలను (లక్షణాలను) నిర్మిస్తుంది, తరువాతి అభ్యాసం మరియు సాధారణీకరణ దశలను సులభతరం చేస్తుంది మరియు కొన్ని సందర్భాల్లో మంచి మానవ వివరణలకు దారితీస్తుంది. ఇది డైమెన్షియాలిటీ తగ్గింపుకు సంబంధించినది.
సర్వోత్తమీకరణం
సర్వోత్తమీకరణం ఉత్తమ ఎంపికఅందుబాటులో ఉన్న కొన్ని ప్రత్యామ్నాయాల నుండి మూలకం (కొన్ని ప్రమాణాలకు సంబంధించి).
సరళమైన సందర్భంలో, ఆప్టిమైజేషన్ సమస్య అనుమతించబడిన సమితి నుండి ఇన్పుట్ విలువలను క్రమపద్ధతిలో ఎన్నుకోవడం ద్వారా మరియు ఫంక్షన్ యొక్క విలువను గణించడం ద్వారా నిజమైన ఫంక్షన్ను గరిష్టీకరించడం లేదా తగ్గించడం కలిగి ఉంటుంది. ఆప్టిమైజేషన్ సిద్ధాంతం మరియు ఇతర సూత్రీకరణలకు సాంకేతికత యొక్క సాధారణీకరణ అనువర్తిత గణితంలో పెద్ద ప్రాంతాన్ని కలిగి ఉంటుంది. మరింత సాధారణంగా, ఆప్టిమైజేషన్ అనేది నిర్వచించిన డొమైన్ (లేదా ఇన్పుట్) ఇచ్చిన కొన్ని ఆబ్జెక్టివ్ ఫంక్షన్ యొక్క “ఉత్తమంగా లభించే” విలువలను కనుగొనడం,వివిధ రకాల ఆబ్జెక్టివ్ ఫంక్షన్లు మరియు వివిధ రకాల డొమైన్లతో సహా.
కేస్ - మూవీ రికమండేషన్ సిస్టమ్ ఉపయోగించండి
సమస్యల నివేదిక: అపాచీ స్పార్క్ ఉపయోగించి యూజర్ యొక్క ప్రాధాన్యతల ఆధారంగా సినిమాలను సిఫారసు చేసే మూవీ రికమండేషన్ సిస్టమ్ను రూపొందించడానికి.
మా అవసరాలు:
కాబట్టి, మా చలన చిత్ర సిఫార్సు వ్యవస్థను రూపొందించడానికి అవసరాలను అంచనా వేద్దాం:
- డేటాను భారీ మొత్తంలో ప్రాసెస్ చేయండి
- బహుళ వనరుల నుండి ఇన్పుట్ చేయండి
- ఉపయోగించడానికి సులభం
- ఫాస్ట్ ప్రాసెసింగ్
మేము అంచనా వేయవచ్చుమా అవసరాలు, తక్కువ సమయంలో పెద్ద డేటాను ప్రాసెస్ చేయడానికి మాకు ఉత్తమమైన పెద్ద డేటా సాధనం అవసరం. అందువలన, అపాచీ స్పార్క్ మా మూవీ సిఫార్సు వ్యవస్థను అమలు చేయడానికి సరైన సాధనం.
ఇప్పుడు మన సిస్టమ్ కోసం ఫ్లో రేఖాచిత్రాన్ని చూద్దాం.
మనం చూడగలిగినట్లుగా, కిందివి స్పార్క్ స్ట్రీమింగ్ నుండి స్ట్రీమింగ్ను ఉపయోగిస్తాయి. మేము నిజ సమయంలో ప్రసారం చేయవచ్చు లేదా హడూప్ HDFS నుండి డేటాను చదవవచ్చు.
డేటాసెట్ పొందడం:
మా మూవీ రికమండేషన్ సిస్టమ్ కోసం, మేము IMDB, రాటెన్ టొమాటోస్ మరియు టైమ్స్ మూవీ రేటింగ్స్ వంటి అనేక ప్రముఖ వెబ్సైట్ల నుండి యూజర్ రేటింగ్స్ పొందవచ్చు. ఈ డేటాసెట్ CSV ఫైల్స్, టెక్స్ట్ ఫైల్స్ వంటి అనేక ఫార్మాట్లలో లభిస్తుందిnd డేటాబేస్. మేము వెబ్సైట్ల నుండి డేటాను ప్రత్యక్ష ప్రసారం చేయవచ్చు లేదా వాటిని డౌన్లోడ్ చేసి నిల్వ చేయవచ్చుమా స్థానిక ఫైల్ సిస్టమ్ లేదా HDFS.
డేటాసెట్:
జనాదరణ పొందిన వెబ్సైట్ల నుండి డేటాసెట్ను ఎలా సేకరించవచ్చో ఈ క్రింది బొమ్మ చూపిస్తుంది.
మేము డేటాను స్పార్క్లోకి ప్రసారం చేసిన తర్వాత, ఇది కొంతవరకు కనిపిస్తుంది.
యంత్ర అభ్యాస:
మొత్తం సిఫార్సు వ్యవస్థ మెషిన్ లెర్నింగ్ అల్గోరిథం మీద ఆధారపడి ఉంటుంది ప్రత్యామ్నాయ తక్కువ చతురస్రాలు . ఇక్కడ, ALS అనేది ఒక రకమైన రిగ్రెషన్ విశ్లేషణ, ఇక్కడ డేటా పాయింట్ల మధ్య ఒక గీతను గీయడానికి రిగ్రెషన్ ఉపయోగించబడుతుంది, తద్వారా ప్రతి డేటా పాయింట్ నుండి దూరం యొక్క చతురస్రాల మొత్తం తగ్గించబడుతుంది. అందువల్ల, ఈ పంక్తి ఫంక్షన్ యొక్క విలువలను స్వతంత్ర వేరియబుల్ యొక్క విలువను కలిసే చోట అంచనా వేయడానికి ఉపయోగించబడుతుంది.
రేఖాచిత్రంలోని నీలిరంగు రేఖ ఉత్తమంగా సరిపోయే రిగ్రెషన్ లైన్. ఈ పంక్తికి, పరిమాణం D యొక్క విలువ కనిష్టంగా ఉంటుంది. అన్ని ఇతర ఎరుపు గీతలు ఎల్లప్పుడూ డేటాసెట్ నుండి దూరంగా ఉంటాయి.
స్పార్క్ MLlib అమలు:
- ఇతర సినిమాలకు వారి రేటింగ్స్ ఆధారంగా నిర్దిష్ట సినిమాలకు వినియోగదారుల రేటింగ్స్ అంచనా వేయడానికి మేము సహకార ఫిల్టరింగ్ (సిఎఫ్) ను ఉపయోగిస్తాము.
- మేము నిర్దిష్ట సినిమా కోసం ఇతర వినియోగదారుల రేటింగ్తో దీన్ని సహకరిస్తాము.
- మా మెషిన్ లెర్నింగ్ నుండి ఈ క్రింది ఫలితాలను పొందడానికి, మేము స్పార్క్ SQL యొక్క డేటాఫ్రేమ్, డేటాసెట్ మరియు SQL సేవలను ఉపయోగించాలి.
మా ప్రోగ్రామ్ కోసం నకిలీ కోడ్ ఇక్కడ ఉంది:
దిగుమతి org.apache.spark.mllib.recommendation.ALS దిగుమతి org.apache.spark.mllib.recommendation.Rating దిగుమతి org.apache.spark.SparkConf // ఇతర అవసరమైన ప్యాకేజీలను దిగుమతి చేయండి మూవీ {డెఫ్ మెయిన్ (అర్గ్స్: అర్రే [స్ట్రింగ్] ) {val conf = new SparkConf (). setAppName ('Movie'). setMaster ('local [2]') val sc = new SparkContext (conf) val rawData = sc.textFile ('* మూవీ CSV ఫైల్ నుండి డేటాను చదవండి * ') //rawData.first () val rawRatings = rawData.map (* టాబ్ డీలిమిటర్లో rawData ను విభజించండి *) val రేటింగ్లు = rawRatings.map {* యూజర్, మూవీ మరియు రేటింగ్ యొక్క మ్యాప్ కేసు శ్రేణి *} // డేటా వాల్ మోడల్కు శిక్షణ = ALS.train (రేటింగ్స్, 50, 5, 0.01) model.userFeatures model.userFeatures.count model.productFeatures.count val icted హించిన రేటింగ్ = * సినిమా 123 కోసం వాడుకరి 789 కోసం అంచనా వేయండి * val userId = * వాడుకరి 789 * val K = 10 val topKRecs = model.recommendProducts (* K * యొక్క నిర్దిష్ట విలువ కోసం వినియోగదారు కోసం సిఫార్సు) println (topKRecs.mkString ('')) val movies = sc.textFile ('* మూవీ జాబితా డేటాను చదవండి *') val title = movies.map (line => line.split ('|'). తీసుకోండి ( 2)). మ్యాప్ (అర్రే => (అర్రే (0) .ఇంటెంట్, అర్రే (1)). సేకరించండిఅస్మాప్ () వాల్ టైటిల్స్ఆర్డిడి = మూవీస్.మ్యాప్ (లైన్ => లైన్.స్ప్లిట్ ('|'). తీసుకోండి (2) ) .మాప్ (అర్రే => (అర్రే (0) .టోఇంట్, అర్రే (1))). కాష్ () టైటిల్స్ (123) వాల్ మూవీస్ఫోర్యూజర్ = రేటింగ్స్. * యూజర్ కోసం శోధించండి 789 * val sqlContext = * SQL కాంటెక్స్ట్ సృష్టించండి * val movies సిఫార్సు చేయబడింది = చదరపు కంటెక్స్ట్. * వినియోగదారు 789 కోసం రేటింగ్లను క్రమబద్ధీకరించండి * .మ్యాప్ (* రేటింగ్ను మూవీ టైటిల్కు మ్యాప్ చేయండి *). * రేటింగ్ను ముద్రించండి * val results = moviesForUser.sortBy (-_. రేటింగ్). టేక్ (30) .మ్యాప్ (రేటింగ్ => (శీర్షికలు (రేటింగ్.ప్రొడక్ట్), రేటింగ్.రేటింగ్))}}
మేము అంచనాలను రూపొందించిన తర్వాత, ఫలితాలను RDBMS వ్యవస్థలో నిల్వ చేయడానికి మేము స్పార్క్ SQL ని ఉపయోగించవచ్చు. ఇంకా, ఇది వెబ్ అప్లికేషన్లో ప్రదర్శించబడుతుంది.
ఫలితాలు:
మూర్తి: యూజర్ 77 కోసం సినిమాలు సిఫార్సు చేయబడ్డాయి
హుర్రే! మేము అపాచీ స్పార్క్ ఉపయోగించి మూవీ రికమండేషన్ సిస్టమ్ను విజయవంతంగా సృష్టించాము. దీనితో, మేము స్పార్క్ MLlib అందించే అనేక ప్రసిద్ధ అల్గారిథమ్లలో ఒకదాన్ని మాత్రమే కవర్ చేసాము. డేటా సైన్స్ అల్గోరిథంస్పై రాబోయే బ్లాగుల్లో మెషిన్ లెర్నింగ్ గురించి మరింత తెలుసుకుంటాము.
జావా ప్రోగ్రామ్ను ఎలా కంపైల్ చేయాలి
ముందుకు సాగితే, మీరు స్పార్క్ ట్యుటోరియల్, స్పార్క్ స్ట్రీమింగ్ ట్యుటోరియల్తో అపాచీ స్పార్క్ నేర్చుకోవడం కొనసాగించవచ్చు, మరియు స్పార్క్ ఇంటర్వ్యూ ప్రశ్నలు.ఎడురేకా ఆన్లైన్లో సాధ్యమైనంత ఉత్తమమైన అభ్యాస అనుభవాన్ని అందించడానికి అంకితం చేయబడింది.
మా తనిఖీ చేయండి i f మీరు స్పార్క్ నేర్చుకోవాలని మరియు స్పార్క్ డొమైన్లో వృత్తిని నిర్మించాలని మరియు నిజ జీవిత వినియోగ కేసులతో RDD, స్పార్క్ స్ట్రీమింగ్, స్పార్క్ SQL, MLlib, గ్రాఫ్ఎక్స్ మరియు స్కాలా ఉపయోగించి పెద్ద ఎత్తున డేటా ప్రాసెసింగ్ నిర్వహించడానికి నైపుణ్యాన్ని పెంచుకోవాలని మీరు కోరుకుంటారు.