Výukový program pro Spark Streaming - Analýza sentimentu pomocí Apache Spark



Tento blog Spark Streaming vám představí Spark Streaming, jeho funkce a komponenty. Zahrnuje projekt Sentiment Analysis pomocí Twitteru.

Spark Streaming je rozšíření jádra Spark API, které umožňuje škálovatelné, vysoce propustné a odolné proti chybám zpracování proudu živých datových proudů. Streamování Spark lze použít k přenosu živých dat a ke zpracování může dojít v reálném čase. Stále rostoucí uživatelská základna Spark Streaming se skládá z domácích jmen jako Uber, Netflix a Pinterest.

Pokud jde o analýzu dat v reálném čase, Spark Streaming poskytuje jedinou platformu pro příjem dat pro rychlé a živé zpracování a dokazuje vaše dovednosti ve stejné.Prostřednictvím tohoto blogu vám představím tuto novou vzrušující doménu Spark Streaming a projdeme kompletní případ použití, Analýza sentimentu na Twitteru pomocí Spark Streaming.





V následujícím blogu se budeme zabývat následujícími tématy:

  1. Co je streamování?
  2. Proč Spark Streaming?
  3. Přehled streamování Spark
  4. Funkce Spark Streaming
  5. Základy streamování jisker
    5.1 Kontext streamování
    5.2 DStream
    5.3 Ukládání do mezipaměti / vytrvalost
    5.4 Akumulátory, vysílané proměnné a kontrolní body
  6. Použít případ - analýza sentimentu na Twitteru

Co je streamování?

Datový proud je technika pro přenos dat, takže je lze zpracovávat jako stálý a nepřetržitý proud. Streamovací technologie jsou s růstem internetu stále důležitější.



Co je streaming - Spark streaming - EdurekaPostava: Co je streamování?

Proč Spark Streaming?

Můžeme použít Spark Streaming pro streamování dat v reálném čase z různých zdrojů, jako je Twitter, akciový trh a geografické systémy, a provádět výkonné analýzy, které pomáhají podnikům.

Postava: Proč Spark Streaming?



Přehled streamování Spark

Streamování jisker se používá ke zpracování datových proudů v reálném čase. Je to užitečný doplněk k jádru Spark API. Spark Streaming umožňuje zpracování datových proudů živých dat s vysokou propustností a odolností proti chybám.

Postava: Proudy ve streamování Spark

Základní jednotkou proudu je DStreamcož je v podstatě řada RDD ke zpracování dat v reálném čase.

Funkce Spark Streaming

  1. Škálování: Streamování Spark lze snadno škálovat na stovky uzlů.
  2. Rychlost: To anízká latence.
  3. Odolnost proti chybám: Spark má schopnost napřúčinně se zotavit z poruch.
  4. Integrace: Spark se integruje s dávkovým zpracováním a zpracováním v reálném čase.
  5. Obchodní analýzy: Streamování Spark je uke sledování chování zákazníků, které lze použít při obchodní analýze.

Pracovní postup streamování jisker

Pracovní postup Spark Streaming má čtyři fáze na vysoké úrovni. Prvním je streamování dat z různých zdrojů. Těmito zdroji mohou být zdroje datových proudů jako Akka, Kafka, Flume, AWS nebo Parquet pro streamování v reálném čase. Druhý typ zdrojů zahrnuje HBase, MySQL, PostgreSQL, Elastic Search, Mongo DB a Cassandra pro statické / dávkové streamování. Jakmile k tomu dojde, lze Spark použít k provedení Machine Learning na datech prostřednictvím jeho rozhraní MLlib API. Dále se Spark SQL používá k provádění dalších operací s těmito daty. Nakonec lze streamovaný výstup uložit do různých systémů pro ukládání dat, jako jsou HBase, Cassandra, MemSQL, Kafka, Elastic Search, HDFS a lokální souborový systém.

Postava: Přehled streamování jisker

Základy streamování jisker

  1. Kontext streamování
  2. DStream
  3. Ukládání do mezipaměti
  4. Akumulátory, vysílané proměnné a kontrolní body

Kontext streamování

Kontext streamování spotřebovává proud dat ve Sparku. Registruje Vstup DStream vyrábět a Přijímač objekt. Je to hlavní vstupní bod pro funkčnost Sparku. Spark poskytuje řadu výchozích implementací zdrojů, jako je Twitter, Akka Actor a ZeroMQ, které jsou přístupné z kontextu.

StreamingContext objekt lze vytvořit z objektu SparkContext. SparkContext představuje připojení ke clusteru Spark a lze jej použít k vytvoření RDD, akumulátorů a proměnných vysílání v tomto clusteru.

import org.apache.spark._ import org.apache.spark.streaming._ var ssc = nový StreamingContext (sc, sekundy (1))

DStream

Diskretizovaný stream (DStream) je základní abstrakce poskytovaná Spark Streaming. Jedná se o nepřetržitý proud dat. Přijímá se ze zdroje dat nebo ze zpracovaného datového proudu generovaného transformací vstupního proudu.

role a povinnosti správce hadoop

Postava: Extrahování slov z Input DStream

Interně je DStream reprezentován kontinuální řadou RDD a každý RDD obsahuje data z určitého intervalu.

Vstupní DStreams: Vstup DStreams jsou DStreams představující proud vstupních dat přijatých ze streamovacích zdrojů.

Postava: Přijímač odesílá data na vstupní DStream, kde každá dávka obsahuje RDD

Každý vstup DStream je spojen s objektem přijímače, který přijímá data ze zdroje a ukládá je do paměti Sparku ke zpracování.

Transformace na DStreams:

Jakákoli operace použitá na DStream se převádí na operace na podkladových RDD. Transformace umožňují upravit data ze vstupního DStream podobně jako RDD. DStreams podporují mnoho transformací dostupných na normálních Spark RDD.

Postava: Transformace DStream

Následuje několik populárních transformací na DStreams:

mapa( func )mapa( func ) vrátí nový DStream předáním každého prvku zdrojového DStream funkcí func.
flatMap ( func )flatMap ( func ) je podobný mapě ( func ) ale každou vstupní položku lze namapovat na 0 nebo více výstupních položek a vrátí nový DStream předáním každého zdrojového prvku funkcí func.
filtr( func )filtr( func ) vrací nový DStream výběrem pouze záznamů zdrojového DStream, na kterém func vrací true.
snížit( func )snížit( func ) vrací nový DStream jednoprvkových RDD agregací prvků v každém RDD zdrojového DStream pomocí funkce func .
skupina vytvořená( func )skupina vytvořená( func ) vrací nový RDD, který je v zásadě tvořen klíčem a odpovídajícím seznamem položek této skupiny.

Výstup DStreams:

Výstupní operace umožňují odesílání dat DStream do externích systémů, jako jsou databáze nebo souborové systémy. Výstupní operace aktivují skutečné provedení všech transformací DStream.

Postava: Výstupní operace na DStreams

Ukládání do mezipaměti

DStreams umožnit vývojářům ukládat / ukládat data streamu do paměti. To je užitečné, pokud budou data v DStream vypočítána vícekrát. To lze provést pomocí přetrvávat () metoda na DStream.

Postava: Ukládání do mezipaměti do 2 uzlů

Pro vstupní streamy, které přijímají data po síti (například Kafka, Flume, Sockets atd.),výchozí úroveň perzistence je nastavena na replikaci dat do dvou uzlů pro odolnost proti chybám.

Akumulátory, vysílané proměnné a kontrolní body

Akumulátory: Akumulátory jsou proměnné, které se přidávají pouze prostřednictvím asociativní a komutativní operace. Používají se k implementaci čítačů nebo součtů. Sledování akumulátorů v uživatelském rozhraní může být užitečné pro pochopení postupu běžících fází. Spark nativně podporuje číselné akumulátory. Můžeme vytvořit pojmenované nebo nepojmenované akumulátory.

Proměnné vysílání: Vysílané proměnné umožněte programátorovi uchovávat proměnnou jen pro čtení uloženou v mezipaměti na každém stroji, místo toho, abyste dodávali její kopii s úkoly. Lze je použít k tomu, aby každý uzel efektivně poskytl kopii velké vstupní datové sady. Spark se také pokouší distribuovat vysílané proměnné pomocí efektivních vysílacích algoritmů ke snížení nákladů na komunikaci.

Kontrolní body: Kontrolní body jsou podobné kontrolním bodům v hraní. Umožňují jeho provoz 24/7 a zvyšují jeho odolnost vůči poruchám nesouvisejícím s logikou aplikace.


Postava:
Vlastnosti kontrolních bodů

jak používat metodu split v javě

Použít případ - analýza sentimentu na Twitteru

Nyní, když jsme pochopili základní koncepty Spark Streaming, vyřešíme problém v reálném životě pomocí Spark Streaming.

Problémové prohlášení: Navrhnout systém pro analýzu sentimentu na Twitteru, kde naplňujeme sentimenty pro řešení krizí, přizpůsobení služeb a cílový marketing v reálném čase.

Aplikace analýzy sentimentu:

  • Předpovídejte úspěch filmu
  • Předvídejte úspěch politické kampaně
  • Rozhodněte se, zda investovat do určité společnosti
  • Cílená reklama
  • Zkontrolujte produkty a služby

Implementace streamování Spark:

Níže najdete pseudokód:

// Importujte potřebné balíčky do programu Spark import org.apache.spark.streaming. {Seconds, StreamingContext} import org.apache.spark.SparkContext._ ... import java.io.File objekt twitterSentiment {def main (args : Array [String]) {if (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 =>Získejte text z transformace Hashtags} // RDD pomocí sortBy a poté mapujte funkční tagy. CountByValue () .foreachRDD {rdd => val now = Získejte aktuální čas každého Tweet rdd .sortBy (_._ 2) .map (x => (x, now)) // Ukládáme náš výstup na ~ / twitter / adresář .saveAsTextFile (s '~ / twitter / $ now')} // Transformace DStream pomocí funkcí filtru a mapy val tweets = stream.filter {t => val tagy = t. Split On Spaces .filter (_. StartsWith ('#')). Převést na malá písmena tags.exists {x => true}} val data = tweets.map {status => val sentiment = SentimentAnalysisUtils.detectSentiment (status.getText) val tagss = status.getHashtagEntities.map (_. GetText.toLowerCase) (status.getText, sentiment.toString, tagss.toString ())} data.print () // Ukládáme náš výstup na ~ / s názvy souborů začínajícími jako twitters data.saveAsTextFiles ('~ / twitters', '20 000') ssc. start () ssc.awaitTermination ()}}

Výsledek:

Následují výsledky, které se zobrazují v prostředí Eclipse IDE při spuštění programu Twitter Sentiment Streaming.

Postava: Výstup analýzy sentimentu v prostředí Eclipse IDE

Jak vidíme na snímku obrazovky, všechny tweety jsou kategorizovány na pozitivní, neutrální a negativní podle sentimentu obsahu tweetů.

Výstup Sentimentů tweetů se ukládá do složek a souborů podle času, kdy byly vytvořeny. Tento výstup lze podle potřeby uložit do místního systému souborů nebo HDFS. Výstupní adresář vypadá takto:

Postava: Výstupní složky uvnitř naší složky projektu „twitter“

Tady v adresáři twitteru najdeme uživatelská jména uživatelů Twitteru spolu s časovým razítkem pro každý tweet, jak je uvedeno níže:

Postava: Výstupní soubor obsahující twitterová uživatelská jména s časovým razítkem

Nyní, když máme uživatelské jméno a časové razítko Twitteru, podívejme se na Sentimenty a tweety uložené v hlavním adresáři. Tady po každém tweetu následuje sentimentální emoce. Tento sentiment, který je uložen, se dále používá k analýze obrovského množství poznatků společností.

Postava: Výstupní soubor obsahující tweety s citem

Vylepšení kódu:

Nyní trochu upravme náš kód, abychom získali sentiment pro konkrétní hashtagy (témata). V současné době je Donald Trump, prezident Spojených států, trendem napříč zpravodajskými kanály a online sociálními médii. Podívejme se na pocity spojené s klíčovým slovem „ Trumf „.

Postava: Provádění analýzy sentimentu u tweetů s klíčovým slovem „Trump“

Pohyb vpřed:

proměnlivá třída v java příkladu

Jak jsme viděli z naší demonstrace Analýza sentimentu, můžeme extrahovat sentimenty konkrétních témat, stejně jako jsme to dělali pro „Trump“. Podobně lze Sentiment Analytics použít ve společnostech z celého světa v krizovém řízení, přizpůsobení služeb a cíleném marketingu.

Společnosti využívající Spark Streaming pro analýzu sentimentu použily stejný přístup k dosažení následujících cílů:

  1. Zlepšení zákaznické zkušenosti
  2. Získání konkurenční výhody
  3. Získání Business Intelligence
  4. Oživení ztrátové značky

Tím jsme dospěli ke konci Výukový program pro Spark Streaming blog. Od této chvíle jste již museli rozumět tomu, co je Spark Streaming. Případ použití Analýza sentimentu na Twitteru vám poskytne požadovanou jistotu při práci na budoucích projektech, se kterými se setkáte ve Spark Streaming a Apache Spark. Cvičení je klíčem k zvládnutí jakéhokoli předmětu a doufám, že tento blog ve vás vytvořil dostatečný zájem k dalšímu prozkoumání Apache Spark.

Pro začátek doporučujeme následující výukový program Spark Streaming YouTube od společnosti Edureka:

Streamování jisker | Příklad analýzy sentimentu na Twitteru | Edureka

Tato řada videí na výukovém programu Spark poskytuje úplné pozadí komponentům spolu s případy použití v reálném životě, jako je Analýza sentimentu na Twitteru , Analýza predikce hry NBA , Systém detekce zemětřesení , Analýza letových údajů a Systémy doporučení filmů . Osobně jsme navrhli případy použití tak, abychom každému, kdo běží na kódu, poskytli všestranné odborné znalosti.

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme nejdříve. Pokud se chcete naučit Spark a budovat si kariéru v doméně Spark a budovat odborné znalosti pro provádění rozsáhlého zpracování dat pomocí RDD, Spark Streaming, SparkSQL, MLlib, GraphX ​​a Scala s případy použití v reálném životě, podívejte se na naše interaktivní, živé online tady, přichází s podporou 24 * 7, která vás provede celým obdobím učení.