Säde voogesituse õpetus - meeleolude analüüs Apache Sparki abil



See Spark Streamingi ajaveeb tutvustab teile Spark Streamingut, selle funktsioone ja komponente. See hõlmab projekti Sentiment Analysis, kasutades Twitterit.

Spark Streaming on Sparki põhi-API laiendus, mis võimaldab reaalajas andmevoogude skaleeritavat, suure läbilaskevõimega ja tõrketaluvust. Spark Streamingut saab kasutada reaalajas andmete voogesitamiseks ja töötlemine võib toimuda reaalajas. Spark Streamingu pidevalt kasvav kasutajaskond koosneb majapidamisnimedest nagu Uber, Netflix ja Pinterest.

Mis puutub reaalajas andmete analüüsi, siis pakub Spark Streaming ühe platvormi andmete sisestamiseks kiireks ja reaalajas töötlemiseks ning tõestab teie oskusi samas.Selle blogi kaudu tutvustan teile seda uut põnevat voogedastuse domeeni ja läbime täieliku kasutamise juhtumi, Twitteri meeleolude analüüs kasutades sädeme voogesitust.





Selles blogis käsitletakse järgmisi teemasid:

  1. Mis on voogesitus?
  2. Miks Starki voogesitus?
  3. Säde voogesituse ülevaade
  4. Säde voogesituse funktsioonid
  5. Säde voogesituse põhialused
    5.1 Voogesituse kontekst
    5.2 DStream
    5.3 Vahemällu salvestamine / püsivus
    5.4 Akud, ringhäälingu muutujad ja kontrollpunktid
  6. Kasuta juhtumit - Twitteri meeleolude analüüs

Mis on voogesitus?

Andmeedastus on tehnika andmete edastamiseks, et neid saaks töödelda ühtlase ja pideva vooguna. Streaming-tehnoloogiad muutuvad Interneti kasvades üha olulisemaks.



Mis on voogesitus - säde voogesitus - EdurekaJoonis: Mis on voogesitus?

Miks Starki voogesitus?

Saame kasutada sädeme voogesitust reaalajas andmete voogesitamiseks erinevatest allikatest, nagu Twitter, aktsiaturg ja geograafilised süsteemid, ning teha ettevõtetele abiks tõhusat analüüsi.

Joonis: Miks Starki voogesitus?



c ++, kasutades nimeruumi

Säde voogesituse ülevaade

Säde voogesitus kasutatakse reaalajas voogesituse andmete töötlemiseks. See on kasulik täiendus Sparki tuum API-le. Spark Streaming võimaldab reaalajas andmevoogude suure läbilaskevõimega ja tõrketaluvust.

Joonis: Vooged sädeme voogesituses

Põhiline vooüksus on DStreammis on põhimõtteliselt reaalajas andmete töötlemiseks mõeldud RDD-de seeria.

Säde voogesituse funktsioonid

  1. Skaleerimine: Säde voogesitus võib hõlpsasti laiendada sadade sõlmedeni.
  2. Kiirus: See avähese latentsusega.
  3. Veataluvus: Sädel on võime eebaõnnestumistest toibuda.
  4. Integreerimine: Spark integreerub pakett- ja reaalajas töötlemisega.
  5. Äri analüüs: Säde voogesitus on used klientide käitumise jälgimiseks, mida saab kasutada ärianalüüsis.

Säde voogesituse töövoog

Spark Streamingi töövoos on neli kõrgetasemelist etappi. Esimene on voogesitada andmeid erinevatest allikatest. Need allikad võivad reaalajas voogesituse jaoks olla sellised andmeallikad nagu Akka, Kafka, Flume, AWS või Parkett. Teist tüüpi allikad hõlmavad staatilise / pakkide voogesituse jaoks HBase, MySQL, PostgreSQL, Elastic Search, Mongo DB ja Cassandra. Kui see juhtub, saab Sparki kasutada masinõppe teostamiseks andmetega selle MLlib API kaudu. Lisaks kasutatakse nende andmetega täiendavate toimingute tegemiseks Spark SQL-i. Lõpuks saab voogesituse väljundi salvestada erinevatesse andmesalvestussüsteemidesse nagu HBase, Cassandra, MemSQL, Kafka, Elastic Search, HDFS ja kohalikku failisüsteemi.

Joonis: Säde voogesituse ülevaade

Säde voogesituse põhialused

  1. Voogesituse kontekst
  2. DStream
  3. Vahemälu salvestamine
  4. Akud, ringhäälingu muutujad ja kontrollpunktid

Voogesituse kontekst

Voogesituse kontekst tarbib Sparkis andmevoogu. See registreerib Sisestage DStream toota a Vastuvõtja objekt. See on Sparki funktsionaalsuse peamine sisenemispunkt. Spark pakub mitmeid kontekstist ligipääsetavate allikate nagu Twitter, Akka Actor ja ZeroMQ vaikerakendusi.

StreamingContext objekti saab luua SparkContext objektist. SparkContext tähistab ühendust Spark-klastriga ja seda saab kasutada selles klastris RDD-de, akumulaatorite ja levimuutujate loomiseks.

import org.apache.spark._ import org.apache.spark.streaming._ var ssc = uus StreamingContext (sc, sekundit (1))

DStream

Diskretiseeritud voog (DStream) on põhiline abstraktsioon, mida pakub Spark Streaming. See on pidev andmevoog. See võetakse vastu andmeallikast või sisendvoo teisendamisel loodud töödeldud andmevoogust.

Joonis: Sõnade väljavõtmine sisend-DStreamist

Sisemiselt esindab DStreami pidev RDD-seeria ja iga RDD sisaldab teatud intervalli andmeid.

DStreami sisend: Sisestage DStreams on DStreamid, mis esindavad voogesitusallikatest saadud sisendandmete voogu.

Joonis: Vastuvõtja saadab andmed sisenddreamile, kus iga partii sisaldab RDD-sid

Iga sisend DStream on seotud vastuvõtjaobjektiga, mis võtab andmed vastu allikast ja salvestab need töötlemiseks Sparki mällu.

Teisendused DStreamis:

Kõik DStreamis rakendatud toimingud tähendavad aluseks olevate RDD-de toiminguid. Transformatsioonid võimaldavad sisend-DStreami andmeid muuta sarnaselt RDD-dega. DStreams toetab paljusid tavalistes Sparki RDD-des saadaolevaid teisendusi.

Joonis: DStreami teisendused

Järgmised on mõned DStreami populaarsed muudatused:

kaart ( func )kaart ( func ) tagastab uue DStreami, viies DStreami allika kõik elemendid läbi funktsiooni func.
flatMap ( func )flatMap ( func ) sarnaneb kaardiga ( func ), kuid iga sisendüksuse saab vastendada 0 või enama väljundüksusega ja tagastab uue DStreami, edastades iga lähteelemendi läbi funktsiooni func.
filter ( func )filter ( func ) tagastab uue DStreami, valides ainult selle DStreami allika kirjed func tagastab tõene.
vähendama ( func )vähendama ( func ) tagastab ühe elemendiga RDD-de uue DStreami, koondades funktsiooni kasutades lähtealuse DStreami igas RDD-s olevad elemendid func .
groupBy ( func )groupBy ( func ) tagastab uue RDD, mis põhiliselt koosneb võtmest ja vastavast selle rühma üksuste loendist.

Väljund DStreams:

Väljundtoimingud võimaldavad DStreami andmeid tõrjuda välissüsteemidesse, näiteks andmebaasidesse või failisüsteemidesse. Väljundtoimingud käivitavad kõigi DStreami teisenduste tegeliku käivitamise.

Joonis: DStreami väljundoperatsioonid

Vahemälu salvestamine

DVood lubage arendajatel voo andmeid vahemällu salvestada / mälus säilitada. See on kasulik, kui DStreami andmeid arvutatakse mitu korda. Seda saab teha kasutades püsima () meetod DStreamis.

Joonis: Vahemällu salvestamine kaheks sõlmeks

Sisendvoogude jaoks, mis võtavad andmeid üle võrgu (näiteks Kafka, Flume, Sockets jne),vaikepüsivuse tase on seatud andmete kopeerimiseks tõrketaluvuse jaoks kahte sõlme.

Akud, ringhäälingu muutujad ja kontrollpunktid

Akud: Akud on muutujad, mis lisatakse ainult assotsiatiivse ja kommutatiivse operatsiooni kaudu. Neid kasutatakse loendurite või summade rakendamiseks. Kasutajaliideses olevate akude jälgimine võib olla kasulik jooksuetappide edenemise mõistmiseks. Spark toetab loomulikult numbrilisi akusid. Saame luua nimega või nimetu akusid.

Ringhäälingu muutujad: Ringhäälingu muutujad lubage programmeerijal hoida masinas vahemälus ainult kirjutuskaitstud muutuja, selle asemel et selle koopia koos toimingutega saata. Nende abil saab igale sõlmele tõhusalt anda koopia suurest sisendandmekogumist. Samuti proovib Spark sidekulude vähendamiseks levitada levimuutujaid, kasutades tõhusaid levialgoritme.

Kontrollpunktid: Kontrollpunktid on mängudes sarnased kontrollpunktidega. Nad panevad selle 24/7 töötama ja muudavad rakenduste loogikaga mitteseotud tõrgete suhtes vastupidavaks.


Joonis:
Kontrollpunktide omadused

Kasuta juhtumit - Twitteri meeleolude analüüs

Nüüd, kui oleme Sparki voogesituse põhimõistetest aru saanud, lahendame Sparki voogesituse abil reaalse elu probleemid.

Probleemipüstituses: Kujundada Twitteri meeleolude analüüsisüsteem, kus täidame reaalajas kriisiohjamise, teenuse kohandamise ja sihtturunduse meeleolu.

Sentimentide analüüsi rakendused:

  • Ennusta filmi edukust
  • Ennusta poliitilise kampaania edukust
  • Otsustage, kas investeerida teatud ettevõttesse
  • Sihipärane reklaam
  • Vaadake üle tooted ja teenused

Säde voogesituse juurutamine:

Leidke allpool pseudokood:

// Importige vajalikud paketid rakendusse Spark. Importige org.apache.spark.streaming. {Seconds, StreamingContext} importige org.apache.spark.SparkContext._ ... import java.io.File objekti twitterSentiment {def main (args : Massiiv [string]) {if (arg. Pikkus<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 =>Hangi tekst Hashtagid} // RDD teisendus, kasutades sortBy ja seejärel kaardistage funktsioon tags.countByValue () .foreachRDD {rdd => val now = Hankige iga piiksuma rdd .sortBy (_._ 2) .map (x => praegune aeg) (x, now)) // Meie väljundi salvestamine aadressil ~ / twitter / directory .saveAsTextFile (s '~ / twitter / $ now')} // DStreami teisendamine filtri- ja kaardifunktsioonide abil val tweets = stream.filter {t => val sildid = t. Split on Spaces .filter (_. StartsWith ('#')). Teisenda väiketähtedeks (status.getText, sentiment.toString, tagss.toString ())} data.print () // Meie väljundi salvestamine väärtusele ~ / failinimedega, mis algavad nagu twitters data.saveAsTextFiles ('~ / twitters', '20000') ssc. start () ssc.awaitTermination ()}}

Tulemused:

Järgmised on tulemused, mis kuvatakse Eclipse IDE-s, kui käivitate voogesituse Twitter Sentiment voogesituse.

Joonis: Sentimentide analüüsi väljund Eclipse IDE-s

Nagu ekraanipildilt näeme, liigitatakse kõik säutsud positiivsete, neutraalsete ja negatiivsete hulka vastavalt säutsu sisu tundele.

Tweetside sentimentide väljund salvestatakse kaustadesse ja failidesse vastavalt nende loomise ajale. Selle väljundi saab vajadusel salvestada kohalikku failisüsteemi või HDFS-i. Väljundkataloog näeb välja selline:

Joonis: Väljundkaustad meie projekti twitter kaustas

Siit, twitteri kataloogist, leiame Twitteri kasutajate kasutajanimed koos iga säutsu ajatempliga, nagu allpool näidatud:

Joonis: Twitteri kasutajanimesid sisaldav väljundfail koos ajatempliga

Nüüd, kui oleme saanud Twitteri kasutajanimed ja ajatempli, vaatame põhikataloogi salvestatud meeleolusid ja säutse. Siin järgneb igale säutsule sentiment emotsioon. Seda salvestatud meelt kasutatakse ka ettevõtete suure hulga teadmiste analüüsimiseks.

Joonis: Väljundfail, mis sisaldab meeleolusid sisaldavaid säutse

Koodi kohandamine:

Muutkem nüüd oma koodi veidi, et saada arvamusi konkreetsete räsimärkide (teemade) kohta. Praegu on Ameerika Ühendriikide president Donald Trump populaarsust kogunud uudistekanalites ja veebis sotsiaalmeedias. Vaatame märksõnaga ’seotud meeleolusid’ Trump “.

Joonis: Sentimentide analüüsi teostamine säutsude jaoks märksõnaga ‘Trump’

Edasi liikumine:

Nagu nägime oma meeleoluanalüüsi meeleavaldusest, võime teatud teemadest välja tõmmata just nagu Trumpi puhul. Sarnaselt saab Sentiment Analyticsi kasutada kriiside ohjamisel, teenuste kohandamisel ja sihtturundusel kogu maailmas asuvate ettevõtete poolt.

Ettevõtted, kes kasutavad meeleoluanalüüsiks sädeme voogesitust, on järgmise lähenemise saavutamiseks kasutanud sama lähenemist:

  1. Kliendikogemuse parandamine
  2. Konkurentsieelise saamine
  3. Ärianalüüsi hankimine
  4. Kaotava kaubamärgi taaselustamine

Sellega oleme selle lõpule jõudnud Säde voogesituse õpetus ajaveeb. Nüüdseks peate olema omandanud hea arusaama sellest, mis on sädeme voogesitus. Twitteri meeleolude analüüsi kasutamise juhtum annab teile vajaliku enesekindluse, et töötada kõigi tulevaste projektidega, millega kohtute Sparki voogesituse ja Apache Sparki kaudu. Harjutamine on mis tahes teema valdamise võti ja loodan, et see ajaveeb on tekitanud sinus piisavalt huvi, et Apache Sparkis edasi uurida.

Alustuseks soovitame järgmist Edureka Sparki voogesituse YouTube'i õpetust:

Säde voogesitus | Twitteri meeleolude analüüsi näide | Edureka

See Sparki õpetuse videosari annab komponentidele täieliku tausta koos reaalses elus kasutatavate juhtumitega, näiteks Twitteri meeleolude analüüs , NBA mängude ennustusanalüüs , Maavärinate avastamise süsteem , Lennuandmete analüüs ja Filmi soovitussüsteemid . Oleme isiklikult kavandanud kasutusjuhtumid, et pakkuda igakülgset ekspertiisi kõigile, kes seda koodi kasutavad.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega kõige varem ühendust. Kui soovite õppida Sparki ja luua karjääri Sparki valdkonnas ning koguda asjatundlikkust suuremahulise andmetöötluse teostamiseks, kasutades RDD, Spark Streaming, SparkSQL, MLlib, GraphX ​​ja Scala koos Real Life kasutusjuhtumitega, vaadake meie interaktiivseid otseülekandeid võrgus siin, kaasas 24 * 7 tugi, mis juhendab teid kogu õppeperioodi vältel.