Úvod do programu Spark s Pythonem - PySpark pro začátečníky



Apache Spark převzal svět Big Data & Analytics a Python je dnes jedním z nejdostupnějších programovacích jazyků používaných v tomto odvětví. Tady v tomto blogu se tedy dozvíme o Pysparku (jiskra s pythonem), abychom z obou světů dostali to nejlepší.

je jedním z nejpoužívanějších rámců, pokud jde o manipulaci a práci s Big Data AND Krajta je jedním z nejpoužívanějších programovacích jazyků pro analýzu dat, strojové učení a mnoho dalšího. Proč je tedy nepoužívat společně? To je kde Spark s Pythonem také známý jako PySpark přichází dotheobrázek.

jak implementovat hromadu

S průměrným platem 110 000 $ ročně pro vývojáře Apache Spark není pochyb o tom, že Spark se v tomto odvětví hodně používá. Kvůlisvébohatá sada knihoven, Python používáthednes většina vědců v oboru datových vědců a analytiků. Integrace Pythonu se Sparkem byla velkým darem pro komunitu. Spark byl vyvinut v jazyce Scala, který je velmi podobný jazyku Java. Sestavuje programový kód do bytecode pro JVM pro jiskření zpracování velkých dat. Pro podporu Sparku s pythonem vydala komunita Apache Spark PySpark.Od té doby, je známo, že je jednou z nejvyhledávanějších dovedností v celém odvětví díky široké škále výhod, které přišly po kombinaci toho nejlepšího z obou těchto světů.V tomto blogu Spark with Python se budu zabývat následujícími tématy.





Úvod do Apache Spark

Apache Spark je open-source framework pro výpočet clusteru pro zpracování v reálném čase vyvinutá Apache Software Foundation. Spark poskytuje rozhraní pro implicitní programování celých klastrů paralelnost dat a odolnost proti chybám.



Níže jsou uvedeny některé funkce Apache Spark, které mu dávají výhodu nad ostatními rámci:

Funkce Spark - Spark s Pythonem - Edureka

  • Rychlost: Je stokrát rychlejší než tradiční rozsáhlé rámce pro zpracování dat.
  • Výkonné ukládání do mezipaměti: Jednoduchá programovací vrstva poskytuje výkonné možnosti ukládání do mezipaměti a vytrvalosti disku.
  • Rozvinutí: Lze nasadit přes Mesos, Hadoop přes Yarn nebo vlastního správce klastrů Sparku.
  • Reálný čas: Reálný časvýpočet a nízká latence kvůli výpočtu v paměti.
  • Polyglot: Je to jeden z nejdůležitějšíchfunkcetohoto rámce, protože jej lze naprogramovat v programech Scala, Java, Python a R.

Proč jít na Python?

Ačkoli Spark byl navržen ve scala, což je téměř 10krát rychlejší než Python, ale Scala je rychlejší pouze tehdy, když počet použitých jader je menší . Protože většina analýz a procesů v dnešní době vyžaduje velké množství jader, výhoda Scala ve výkonu není tak velká.



Pro programátory je Python poměrně jednodušší učit se kvůli jeho syntaxi a standardním knihovnám. Navíc je to dynamicky psaný jazyk, což znamená, že RDD mohou obsahovat objekty několika typů.

Ačkoli Scala má SparkMLlib nemá dostatek knihoven a nástrojů pro strojové učení a NLP účely. Scale navíc chybí vizualizace dat.

Školení PySpark | Apache Spark s Pythonem Edureka

Přihlaste se k odběru našeho kanálu na YouTube a získejte nové aktualizace ..!

Nastavení Spark s Pythonem (PySpark)

Doufám, že víte, jak na to .Takže jakmile to uděláte rozepnutý jiskrový pilník, nainstalován a přidal jeho cestu k .bashrc soubor, musíte zadatzdroj .bashrc

export SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 export PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

Chcete-li otevřít pyspark shell, musíte zadat příkaz./bin/pyspark

Jiskra v průmyslu

Apache Spark díky jeho úžasným funkcím, jako je zpracování v paměti , polyglot a rychlé zpracování jsou používány mnoha společnostmi po celém světě pro různé účely v různých průmyslových odvětvích:

Yahoo používá Apache Spark pro své schopnosti strojového učení k přizpůsobení svých zpráv, webových stránek a také k cílové reklamě. Používají Spark s pythonem, aby zjistili, jaký druh zpráv - uživatelé mají zájem číst a kategorizují novinové zprávy, aby zjistili, jaký druh uživatelů by měl zájem číst každou kategorii zpráv.

TripAdvisor používá apache spark k poskytování poradenství milionům cestujících porovnáním stovek webových stránek a vyhledáním nejlepších cen hotelů pro své zákazníky. Čas potřebný ke čtení a zpracování recenzí hotelů v čitelném formátu se provádí pomocí Apache Spark.

Jedna z největších světových platforem elektronického obchodování Alibaba provozuje některé z největších úloh Apache Spark na světě za účelem analýzy stovek petabajtů dat na své platformě elektronického obchodování.

PySpark SparkContext a datový tok

Když mluvíme o Sparku s Pythonem, práci s RDD umožňuje knihovna Py4j. PySpark Shell propojuje rozhraní Python API se zážehovým jádrem a inicializuje kontext Spark. Spark kontext je srdcem každé jiskrové aplikace.

  1. Kontext Spark nastavuje interní služby a navazuje spojení s prostředím Spark spuštění.
  2. Objekt sparkcontext v programu ovladače koordinuje celý distribuovaný proces a umožňuje alokaci prostředků.
  3. Cluster Managers poskytují Exekutory, což jsou procesy JVM s logikou.
  4. Objekt SparkContext odešle aplikaci vykonavatelům.
  5. SparkContext provádí úkoly v každém exekutoru.

Případ použití PySpark KDD

Nyní se podívejme na případ použití KDD’99 Cup (Mezinárodní soutěž v získávání znalostí a dolování dat).Zde vezmeme zlomek datové sady, protože původní datová sada je příliš velká

import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')

VYTVOŘENÍ RDD:
Nyní můžeme tento soubor použít k vytvořte náš RDD .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (datovy_soubor)

FILTROVÁNÍ:

Předpokládejme, že chceme spočítat, kolik normálních. interakce, které máme v naší datové sadě. Můžeme filtr naše raw_data RDD následovně.

normal_raw_data = raw_data.filter (lambda x: 'normal.' v x)

POČET:

Teď můžeme počet kolik prvků máme v novém RDD.

od času čas importu t0 = čas () normal_count = normal_raw_data.count () tt = time () - t0 tisk 'Existuje {}' normální 'interakce'. formát (normal_count) tisk 'Počet dokončen za {} sekund'. formát (kulatý (tt, 3))

Výstup:

Existuje 97278 „normálních“ interakcí Počet dokončen za 5,951 sekundy

MAPOVÁNÍ:

V tomhlepřípadchceme číst náš datový soubor jako soubor ve formátu CSV. Můžeme to udělat použitím lambda funkce na každý prvek v RDD následujícím způsobem. Zde použijeme map () a take () transformace.

z pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analýza dokončena za {} sekund '.formát (kulatý (tt, 3)) pprint (head_rows [0])

Výstup:

Analýza byla dokončena za 1,715 sekundy [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

ROZDĚLENÍ:

Nyní chceme mít každý prvek v RDD jako pár klíč – hodnota, kde klíčem je značka (např. normální ) a hodnotou je celý seznam prvků, které představují řádek v souboru ve formátu CSV. Mohli bychom postupovat následovně. Zde používáme line.split () a map ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] návrat (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Výstup: (u'normální. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normální. '])

SPOLEČNÁ AKCE:

Zde použijeme akci collect (). Získá všechny prvky RDD do paměti. Z tohoto důvodu je nutné jej při práci s velkými RDD používat opatrně.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 tisk 'Data shromážděna za {} sekund'. formát (kulatý (tt, 3))

Výstup:

Data shromážděna za 17 927 sekund

Samozřejmě to trvalo déle jako jakákoli jiná akce, kterou jsme použili dříve. Každý pracovní uzel Spark, který má fragment RDD, musí být koordinován, aby získal svou část a poté vše zmenšil dohromady.

Jako poslední příklad kombinující všechny předchozí chceme shromáždit všechnynormálníinterakce jako páry klíč – hodnota.

# získat data ze souboru data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # analyzovat do párů klíč – hodnota key_csv_data = raw_data.map (parse_interaction) # filtrovat normální klíčové interakce normal_key_interactions = key_csv_data.filter ( lambda x: x [0] == 'normal.') # collect all t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Data shromážděna za {} sekund '.format (round (tt, 3)) print' There are {} 'normal' interactions'.format (normal_count)

Výstup:

Data shromážděná za 12,485 sekundy Existuje 97278 normálních interakcí

Tak to je, lidi!

Doufám, že se vám tento blog Spark with Python líbil. Pokud to čtete, gratulujeme! Už nejste v PySparku nováčkem. Vyzkoušejte tento jednoduchý příklad na svých systémech hned teď.

Nyní, když jste pochopili základy PySparku, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Edureka Výcvik certifikace Python Spark pomocí PySpark je navržen tak, aby vám poskytl znalosti a dovednosti potřebné k tomu, abyste se stali úspěšným vývojářem Spark pomocí Pythonu, a připravil vás na certifikační zkoušku Cloudera Hadoop a Spark Developer Certification Exam (CCA175).

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.