स्पार्क स्ट्रीमिंग ट्यूटोरियल - अपाचे स्पार्क का उपयोग करके सेंटीमेंट विश्लेषण



यह स्पार्क स्ट्रीमिंग ब्लॉग आपको स्पार्क स्ट्रीमिंग, इसकी विशेषताओं और घटकों से परिचित कराएगा। इसमें ट्विटर का उपयोग करके एक सेंटीमेंट विश्लेषण परियोजना शामिल है।

स्पार्क स्ट्रीमिंग कोर स्पार्क एपीआई का एक विस्तार है जो स्केलेबल, उच्च-थ्रूपुट, लाइव डेटा धाराओं के दोष-सहिष्णु स्ट्रीम प्रोसेसिंग को सक्षम करता है। स्पार्क स्ट्रीमिंग का उपयोग लाइव डेटा को स्ट्रीम करने के लिए किया जा सकता है और प्रसंस्करण वास्तविक समय में हो सकता है। स्पार्क स्ट्रीमिंग के कभी-बढ़ते उपयोगकर्ता आधार में Uber, Netflix और Pinterest जैसे घरेलू नाम शामिल हैं।

जब रियल टाइम डेटा एनालिटिक्स की बात आती है, स्पार्क स्ट्रीमिंग तेजी से और लाइव प्रसंस्करण के लिए डेटा को निगलना करने के लिए एक एकल मंच प्रदान करता है उसी में अपना कौशल साबित करता है।इस ब्लॉग के माध्यम से, मैं आपको स्पार्क स्ट्रीमिंग के इस नए रोमांचक डोमेन से परिचित कराऊंगा और हम इसका पूरा उपयोग करेंगे। ट्विटर सेंटिमेंट एनालिसिस स्पार्क स्ट्रीमिंग का उपयोग करना।





निम्नलिखित विषय हैं जो इस ब्लॉग में शामिल किए जाएंगे:

  1. स्ट्रीमिंग क्या है?
  2. स्पार्क स्ट्रीमिंग क्यों?
  3. स्पार्क स्ट्रीमिंग अवलोकन
  4. स्पार्क स्ट्रीमिंग सुविधाएँ
  5. स्पार्क स्ट्रीमिंग फंडामेंटल
    5.1 स्ट्रीमिंग का संदर्भ
    5.2 DStream
    5.3 कैशिंग / दृढ़ता
    5.4 Accumulators, प्रसारण चर और चौकी
  6. केस का उपयोग करें - ट्विटर सेंटिमेंट एनालिसिस

स्ट्रीमिंग क्या है?

डेटा स्ट्रीमिंग डेटा ट्रांसफर करने की एक तकनीक है ताकि इसे एक स्थिर और निरंतर स्ट्रीम के रूप में संसाधित किया जा सके। इंटरनेट की वृद्धि के साथ स्ट्रीमिंग प्रौद्योगिकियां बहुत महत्वपूर्ण होती जा रही हैं।



स्ट्रीमिंग क्या है - स्पार्क स्ट्रीमिंग - एडुर्काचित्र: स्ट्रीमिंग क्या है?

स्पार्क स्ट्रीमिंग क्यों?

हम ट्विटर, स्टॉक मार्केट और जियोग्राफिकल सिस्टम जैसे विभिन्न स्रोतों से वास्तविक समय के डेटा को स्ट्रीम करने और व्यवसायों की सहायता के लिए शक्तिशाली विश्लेषण करने के लिए स्पार्क स्ट्रीमिंग का उपयोग कर सकते हैं।

चित्र: स्पार्क स्ट्रीमिंग क्यों?



स्पार्क स्ट्रीमिंग अवलोकन

स्पार्क स्ट्रीमिंग वास्तविक समय स्ट्रीमिंग डेटा को संसाधित करने के लिए उपयोग किया जाता है। यह कोर स्पार्क एपीआई के लिए एक उपयोगी अतिरिक्त है। स्पार्क स्ट्रीमिंग लाइव डेटा स्ट्रीम के उच्च-थ्रूपुट और दोष-सहिष्णु स्ट्रीम प्रोसेसिंग को सक्षम करता है।

चित्र: स्पार्क स्ट्रीमिंग में स्ट्रीम

मूलभूत धारा इकाई DStream हैजो मूल रूप से वास्तविक समय के डेटा को संसाधित करने के लिए RDDs की एक श्रृंखला है।

स्पार्क स्ट्रीमिंग सुविधाएँ

  1. स्केलिंग: स्पार्क स्ट्रीमिंग आसानी से सैकड़ों नोड्स को स्केल कर सकती है।
  2. गति: यह एकम विलंबता है।
  3. दोष सहिष्णुता: स्पार्क में ई की क्षमता हैअसफलताओं से पूरी तरह से उबरें।
  4. एकीकरण: स्पार्क बैच और वास्तविक समय प्रसंस्करण के साथ एकीकृत करता है।
  5. व्यापार विश्लेषण: स्पार्क स्ट्रीमिंग यू हैग्राहकों के व्यवहार को ट्रैक करने के लिए जो व्यापार विश्लेषण में इस्तेमाल किया जा सकता है।

स्पार्क स्ट्रीमिंग वर्कफ़्लो

स्पार्क स्ट्रीमिंग वर्कफ़्लो में चार उच्च-स्तरीय चरण होते हैं। पहला विभिन्न स्रोतों से डेटा स्ट्रीम करना है। ये स्रोत वास्तविक समय की स्ट्रीमिंग के लिए अक्का, काफ्का, फ्लूम, एडब्ल्यूएस या लकड़ी की छत जैसे डेटा स्रोत स्ट्रीमिंग कर सकते हैं। दूसरे प्रकार के स्रोतों में स्थिर / बैच स्ट्रीमिंग के लिए HBase, MySQL, PostgreSQL, Elastic Search, Mongo DB और Cassandra शामिल हैं। एक बार ऐसा होने के बाद, स्पार्क का उपयोग अपने एमएललिब एपीआई के माध्यम से डेटा पर मशीन लर्निंग करने के लिए किया जा सकता है। इसके अलावा, स्पार्क एसक्यूएल का उपयोग इस डेटा पर आगे के संचालन के लिए किया जाता है। अंत में, स्ट्रीमिंग आउटपुट को विभिन्न डेटा स्टोरेज सिस्टम जैसे HBase, Cassandra, MemSQL, Kafka, Elastic Search, HDFS और स्थानीय फ़ाइल सिस्टम में संग्रहीत किया जा सकता है।

चित्र: स्पार्क स्ट्रीमिंग का अवलोकन

स्पार्क स्ट्रीमिंग फंडामेंटल

  1. स्ट्रीमिंग का संदर्भ
  2. DStream
  3. कैशिंग
  4. Accumulators, प्रसारण चर और चौकी

स्ट्रीमिंग का संदर्भ

स्ट्रीमिंग का संदर्भ स्पार्क में डेटा की एक धारा का उपभोग करता है। यह एक रजिस्टर इनपुट DStream उत्पादन करने के लिए a पानेवाला वस्तु। यह स्पार्क कार्यक्षमता के लिए मुख्य प्रवेश बिंदु है। स्पार्क ट्विटर, अक्का अभिनेता और जीरोएमक्यू जैसे स्रोतों के कई डिफ़ॉल्ट कार्यान्वयन प्रदान करता है जो संदर्भ से सुलभ हैं।

एक StreamingContext ऑब्जेक्ट SparkContext ऑब्जेक्ट से बनाया जा सकता है। SparkContext एक स्पार्क क्लस्टर से कनेक्शन का प्रतिनिधित्व करता है और इसका उपयोग उस क्लस्टर पर RDDs, संचायक और प्रसारण चर बनाने के लिए किया जा सकता है।

आयात org.apache.spark._ आयात org.apache.spark.streaming._ var ssc = new StreamingContext (sc, Seconds (1))

DStream

खंडित स्ट्रीम (DStream) स्पार्क स्ट्रीमिंग द्वारा प्रदान किया गया मूल अमूर्त है। यह डेटा की एक सतत धारा है। यह एक डेटा स्रोत या इनपुट स्ट्रीम को परिवर्तित करके उत्पन्न एक संसाधित डेटा स्ट्रीम से प्राप्त होता है।

चित्र: एक इनपुट DStream से शब्द निकालना

आंतरिक रूप से, एक DStream को RDD की एक सतत श्रृंखला द्वारा दर्शाया जाता है और प्रत्येक RDD में एक निश्चित अंतराल से डेटा होता है।

इनपुट DStreams: इनपुट DStreams स्ट्रीमिंग स्रोतों से प्राप्त इनपुट डेटा की धारा का प्रतिनिधित्व करने वाली DStreams हैं।

चित्र: रिसीवर इनपुट DStream पर डेटा भेजता है जहां प्रत्येक बैच में RDD होते हैं

प्रत्येक इनपुट DStream एक रिसीवर ऑब्जेक्ट से जुड़ा होता है जो किसी स्रोत से डेटा प्राप्त करता है और इसे प्रसंस्करण के लिए स्पार्क की मेमोरी में संग्रहीत करता है।

DStreams पर रूपांतरण:

DStream पर लागू किया गया कोई भी ऑपरेशन अंतर्निहित RDDs के संचालन में बदल जाता है। ट्रांसफ़ॉर्मेशन इनपुट DStream से डेटा को RDD के समान संशोधित करने की अनुमति देता है। DStreams सामान्य स्पार्क आरडीडी पर उपलब्ध कई परिवर्तनों का समर्थन करते हैं।

चित्र: DStream रूपांतरण

DStreams पर कुछ लोकप्रिय परिवर्तन निम्नलिखित हैं:

नक्शा( दुर्गंध )नक्शा( दुर्गंध ) एक फ़ंक्शन के माध्यम से स्रोत DStream के प्रत्येक तत्व को पास करके एक नया DStream देता है दुर्गंध।
फ्लैटपाइप ( दुर्गंध )फ्लैटपाइप ( दुर्गंध ) मानचित्र के समान है ( दुर्गंध ), लेकिन प्रत्येक इनपुट आइटम को 0 या अधिक आउटपुट आइटम पर मैप किया जा सकता है और फ़ंक्शन के माध्यम से प्रत्येक स्रोत तत्व को पारित करके एक नया DStream देता है दुर्गंध।
फ़िल्टर ( दुर्गंध )फ़िल्टर ( दुर्गंध ) स्रोत DStream जिस पर केवल रिकॉर्ड का चयन करके एक नया DStream देता है दुर्गंध सच लौटाता है।
कम करना( दुर्गंध )कम करना( दुर्गंध ) एक फ़ंक्शन का उपयोग करके स्रोत DStream के प्रत्येक RDD में तत्वों को एकत्रित करके एकल-तत्व RDDs का एक नया DStream देता है दुर्गंध
द्वारा समूह बनाएं( दुर्गंध )द्वारा समूह बनाएं( दुर्गंध ) नया आरडीडी लौटाता है जो मूल रूप से उस समूह की वस्तुओं की एक कुंजी और इसी सूची के साथ बनता है।

आउटपुट DStreams:

आउटपुट ऑपरेशन से DStream के डेटा को बाहरी सिस्टम जैसे डेटाबेस या फ़ाइल सिस्टम पर धकेल दिया जाता है। आउटपुट ऑपरेशन सभी DStream परिवर्तनों के वास्तविक निष्पादन को ट्रिगर करते हैं।

चित्र: DStreams पर आउटपुट ऑपरेशन

कैशिंग

DStreams डेवलपर्स को मेमोरी में स्ट्रीम के डेटा को कैश / जारी रखने की अनुमति दें। यह उपयोगी है अगर DStream में डेटा कई बार गणना की जाएगी। यह का उपयोग करके किया जा सकता है लगातार () एक DStream पर विधि।

चित्र: 2 नोड्स में कैशिंग

इनपुट स्ट्रीम के लिए जो नेटवर्क पर डेटा प्राप्त करते हैं (जैसे कफ़्का, फ्लूम, सॉकेट्स आदि)।डिफ़ॉल्ट दृढ़ता स्तर दोष-सहिष्णुता के लिए डेटा को दो नोड्स में दोहराने के लिए सेट किया गया है।

Accumulators, प्रसारण चर और चौकी

संचयकर्ता: संचयकर्ता चर हैं जो केवल एक साहचर्य और कम्यूटेटिव ऑपरेशन के माध्यम से जोड़े जाते हैं। वे काउंटर या रकम को लागू करने के लिए उपयोग किए जाते हैं। यूआई में ट्रैकिंग संचायक चल रहे चरणों की प्रगति को समझने के लिए उपयोगी हो सकता है। स्पार्क मूल रूप से संख्यात्मक संचायक का समर्थन करता है। हम नामांकित या अनाम संचयक बना सकते हैं।

प्रसारण चर: प्रसारण चर प्रोग्रामर को कार्यों के साथ इसकी एक प्रति शिपिंग करने के बजाय प्रत्येक मशीन पर एक रीड-ओनली वैरिएबल कैश्ड रखने की अनुमति दें। उनका उपयोग प्रत्येक नोड को एक कुशल तरीके से बड़े इनपुट डेटासेट की एक प्रति देने के लिए किया जा सकता है। स्पार्क संचार लागत को कम करने के लिए कुशल प्रसारण एल्गोरिदम का उपयोग करके प्रसारण चर वितरित करने का भी प्रयास करता है।

चौकी: चौकी गेमिंग में चौकियों के समान हैं। वे इसे 24/7 चलाते हैं और इसे एप्लिकेशन लॉजिक से संबंधित विफलताओं के लिए लचीला बनाते हैं।


चित्र:
चौकी की विशेषताएं

केस का उपयोग करें - ट्विटर सेंटिमेंट एनालिसिस

अब जब हमने स्पार्क स्ट्रीमिंग की मुख्य अवधारणाओं को समझ लिया है, तो आइए स्पार्क स्ट्रीमिंग का उपयोग करके वास्तविक जीवन की समस्या को हल करें।

समस्या का विवरण: एक ट्विटर सेंटीमेंट एनालिसिस सिस्टम डिजाइन करने के लिए जहां हम संकट प्रबंधन, सेवा समायोजन और लक्ष्य विपणन के लिए वास्तविक समय की भावनाओं को आबाद करते हैं।

भावना विश्लेषण के अनुप्रयोग:

  • किसी फिल्म की सफलता की भविष्यवाणी करना
  • राजनीतिक अभियान की सफलता की भविष्यवाणी करें
  • तय करें कि किसी निश्चित कंपनी में निवेश करना है या नहीं
  • लक्षित विज्ञापन
  • उत्पादों और सेवाओं की समीक्षा करें

स्पार्क स्ट्रीमिंग कार्यान्वयन:

नीचे छद्म कोड खोजें:

// स्पार्क प्रोग्राम में आवश्यक पैकेज आयात करें। org.apache.spark.streaming। {Seconds, StreamingContext} import org.apache.spark.SparkContext._ ... इंपोर्ट java.io.Fire ऑब्जेक्ट twitterSentiment {def main (args) आयात करें : ऐरे [स्ट्रिंग]) {अगर (args.length)<4) { System.err.println('Usage: TwitterPopularTags ' + ' []') System.exit(1) } StreamingExamples.setStreamingLogLevels() //Passing our Twitter keys and tokens as arguments for authorization val Array(consumerKey, consumerSecret, accessToken, accessTokenSecret) = args.take(4) val filters = args.takeRight(args.length - 4) // Set the system properties so that Twitter4j library used by twitter stream // Use them to generate OAuth credentials System.setProperty('twitter4j.oauth.consumerKey', consumerKey) ... System.setProperty('twitter4j.oauth.accessTokenSecret', accessTokenSecret) val sparkConf = new SparkConf().setAppName('twitterSentiment').setMaster('local[2]') val ssc = new Streaming Context val stream = TwitterUtils.createStream(ssc, None, filters) //Input DStream transformation using flatMap val tags = stream.flatMap { status =>हैशटैग से टेक्स्ट प्राप्त करें। // सॉर्ट का उपयोग करके RDD ट्रांसफ़ॉर्मेशन और उसके बाद फंक्शन टैग्स ।.countByVueue () .foreachRDD {rdd => val now = प्रत्येक कलरव rdd का वर्तमान समय प्राप्त करें। sortyy (_._ 2) (x =>)। (x, अब)) // हमारे आउटपुट को ~ / ट्विटर / डायरेक्टरी में सेव कर रहा है। saveAsTextFile (s '~ ~ / twitter / $ now')} // फिल्टर और मैप फ़ंक्शंस का उपयोग करते हुए DStream ट्रांसफ़र वेल ट्वीट्स = stream.filter / T => वैल टैग्स = टी। स्पेल्स ऑन स्प्लिट .filter (_। StartWith ('#'))। लोअर केस टैग में परिवर्तित करें ।exists {x => true}} वैल डेटा = tweets.map {स्टेटस => वैल सेंटीमेंट = सेंटीमेंटअनलिसिस यूटीलिट्स। स्थिति (स्थिति। कस्टम) वैल टैग = स्टेटस .getHashtagEntities.map (_। GetText.toLowerCase)। (status.getText, sentiment.toString, tagss.toString ())} data.print () // पर हमारे उत्पादन की बचत ~ / साथ फ़ाइल नाम twitters data.saveAsTextFiles ('~ ~' ट्विटर्स ',' 20000 ') ssc की तरह शुरू होता है। प्रारंभ () ssc.awaitTermination ()}}

परिणाम:

ट्विटर सेंटिमेंट स्ट्रीमिंग प्रोग्राम चलाते समय ग्रहण आईडीई में प्रदर्शित होने वाले परिणाम निम्नलिखित हैं।

चित्र: ग्रहण आईडीई में सेंटीमेंट एनालिसिस आउटपुट

Google डेटा वैज्ञानिक साक्षात्कार प्रश्न

जैसा कि हम स्क्रीनशॉट में देख सकते हैं, सभी ट्वीट्स को सकारात्मक, तटस्थ और नकारात्मक में वर्गीकृत किया गया है, ट्वीट की सामग्री की भावना के अनुसार।

ट्वीट्स के सेंटिमेंट का आउटपुट उस समय के अनुसार फ़ोल्डर्स और फ़ाइलों में संग्रहीत किया जाता है। इस आउटपुट को आवश्यक रूप से स्थानीय फ़ाइल सिस्टम या HDFS पर संग्रहीत किया जा सकता है। आउटपुट निर्देशिका इस तरह दिखती है:

चित्र: हमारे 'ट्विटर' प्रोजेक्ट फ़ोल्डर के अंदर आउटपुट फ़ोल्डर

यहां, ट्विटर निर्देशिका के अंदर, हम नीचे दिखाए गए हर ट्वीट के लिए टाइमस्टैम्प के साथ ट्विटर उपयोगकर्ताओं के उपयोगकर्ता नाम पा सकते हैं:

चित्र: टाइमस्टैम्प के साथ ट्विटर उपयोगकर्ता नाम वाली आउटपुट फ़ाइल

अब जब हमें ट्विटर उपयोगकर्ता नाम और टाइमस्टैम्प मिल गया है, तो हम मुख्य निर्देशिका में संग्रहीत सेंटीमेंट्स और ट्वीट्स को देखें। यहां, हर ट्वीट के बाद भावनाएं आती हैं। यह सेंटीमेंट जो संग्रहित किया जाता है, आगे कंपनियों द्वारा अंतर्दृष्टि की एक विशाल भीड़ का विश्लेषण करने के लिए उपयोग किया जाता है।

चित्र: आउटपुट फ़ाइल जिसमें भावनाओं के साथ ट्वीट हैं

Tweaking कोड:

अब, विशिष्ट हैशटैग (विषय) के लिए भावनाओं को प्राप्त करने के लिए अपने कोड को थोड़ा संशोधित करें। वर्तमान में, संयुक्त राज्य अमेरिका के राष्ट्रपति डोनाल्ड ट्रम्प, समाचार चैनलों और ऑनलाइन सोशल मीडिया पर ट्रेंड कर रहे हैं। आइए हम कीवर्ड से जुड़ी भावनाओं को देखें sent ट्रम्प

चित्र: Ump ट्रम्प ’कीवर्ड के साथ ट्वीट्स पर सेंटीमेंट एनालिसिस करना

आगे बढ़ना:

जैसा कि हमने अपने सेंटीमेंट एनालिसिस प्रदर्शन से देखा है, हम विशेष विषयों की भावनाओं को वैसे ही निकाल सकते हैं जैसे हमने 'ट्रम्प' के लिए किया था। इसी तरह, सेंटीमेंट एनालिटिक्स का उपयोग दुनिया भर की कंपनियों द्वारा संकट प्रबंधन, सेवा समायोजन और लक्ष्य विपणन में किया जा सकता है।

स्पार्क स्ट्रीमिंग का उपयोग करने वाली कंपनियों ने सेंटिमेंट एनालिसिस के लिए निम्नलिखित को प्राप्त करने के लिए एक ही दृष्टिकोण लागू किया है:

  1. ग्राहक अनुभव को बढ़ाना
  2. प्रतिस्पर्धात्मक लाभ प्राप्त करना
  3. बिजनेस इंटेलिजेंस प्राप्त करना
  4. एक खोने ब्रांड को पुनर्जीवित करना

इसके साथ, हम इसके अंत में आ गए हैं स्पार्क स्ट्रीमिंग ट्यूटोरियल ब्लॉग। अब तक, आपने स्पार्क स्ट्रीमिंग क्या है की एक अच्छी समझ हासिल कर ली होगी। ट्विटर सेंटिमेंट एनालिसिस यूज केस स्पार्क स्ट्रीमिंग और अपाचे स्पार्क में आपके द्वारा सामना की जाने वाली भविष्य की परियोजनाओं पर काम करने के लिए आवश्यक आत्मविश्वास देगा। अभ्यास किसी भी विषय में महारत हासिल करने की कुंजी है और मुझे आशा है कि इस ब्लॉग ने अपाचे स्पार्क पर आगे की खोज करने के लिए आप में पर्याप्त रुचि पैदा की है।

हम निम्नलिखित स्पार्क स्ट्रीमिंग YouTube ट्यूटोरियल को एडुरका से शुरू करने की सलाह देते हैं:

स्पार्क स्ट्रीमिंग | ट्विटर सेंटिमेंट एनालिसिस उदाहरण | Edureka

स्पार्क ट्यूटोरियल पर यह वीडियो श्रृंखला वास्तविक जीवन के उपयोग के मामलों जैसे कि घटकों में एक पूर्ण पृष्ठभूमि प्रदान करती है ट्विटर सेंटिमेंट एनालिसिस , एनबीए गेम भविष्यवाणी विश्लेषण , भूकंप डिटेक्शन सिस्टम , फ्लाइट डेटा एनालिटिक्स तथा मूवी सिफारिश प्रणाली । हमने व्यक्तिगत रूप से उपयोग के मामलों को डिजाइन किया है ताकि कोड चलाने वाले किसी व्यक्ति को एक सर्वांगीण विशेषज्ञता प्रदान की जा सके।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपको वापस प्राप्त करेंगे। यदि आप स्पार्क सीखना चाहते हैं और स्पार्क के क्षेत्र में अपना कैरियर बनाना चाहते हैं और वास्तविक जीवन के उपयोग के मामलों के साथ RDD, स्पार्क स्ट्रीमिंग, स्पार्कक्यूएल, एमएललिब, ग्राफएक्स और स्काला का उपयोग करके बड़े पैमाने पर डेटा प्रोसेसिंग करने के लिए विशेषज्ञता का निर्माण करते हैं, तो हमारे इंटरैक्टिव, लाइव की जांच करें ऑनलाइन यहाँ, यह आपके सीखने की अवधि में मार्गदर्शन करने के लिए 24 * 7 समर्थन के साथ आता है।