Ievads Spark ar Python - PySpark iesācējiem



Apache Spark ir pārņēmis Big Data & Analytics pasauli, un Python ir viena no vispieejamākajām programmēšanas valodām, ko šodien izmanto industrijā. Tāpēc šeit, šajā emuārā, mēs uzzināsim par Pyspark (dzirksti ar pitonu), lai iegūtu vislabāko no abām pasaulēm.

ir viens no visplašāk izmantotajiem ietvariem, apstrādājot un strādājot ar Big Data AND Python ir viena no visplašāk izmantotajām programmēšanas valodām datu analīzei, mašīnmācībai un daudz ko citu. Tātad, kāpēc neizmantot tos kopā? Tas ir kur Dzirkstele ar Python zināms arī kā PySpark ienākbilde.

Ar Apache Spark Developer vidējo algu 110 000 USD gadā nav šaubu, ka Spark nozarē tiek izmantots daudz. Tāpēc kabagātīgu bibliotēku kopu, Python izmantošodien lielākā daļa zinātnieku un analītiķu. Python integrēšana ar Spark bija galvenā dāvana sabiedrībai. Spark tika izstrādāts Scala valodā, kas ir ļoti līdzīga Java. Tas apkopo programmas kodu JVM baitkodā lielu datu apstrādes dzirksteļošanai. Lai atbalstītu Spark ar pitonu, Apache Spark kopiena izlaida PySpark.Kopš, ir zināms, ka tā ir viena no vispieprasītākajām prasmēm visā nozarē, ņemot vērā plašo priekšrocību klāstu, kas radās, apvienojot labāko no abām pasaulēm.Šajā emuārā Spark with Python es apspriedīšu šādas tēmas.





Ievads Apache Spark

Apache Spark ir atvērtā koda klasteru skaitļošanas sistēma reāllaika apstrāde ko izstrādājis Apache programmatūras fonds. Spark nodrošina interfeisu visu klasteru programmēšanai ar netiešu datu paralēlisms un izturība pret kļūdām.



Tālāk ir norādītas dažas Apache Spark iezīmes, kas piešķir tai priekšrocības pār citiem ietvariem:

Spark Features - Dzirkstele ar Python - Edureka

  • Ātrums: Tas ir simtreiz ātrāks nekā tradicionālās liela mēroga datu apstrādes sistēmas.
  • Jaudīga kešatmiņa: Vienkāršs programmēšanas slānis nodrošina jaudīgas kešatmiņas un diska noturības iespējas.
  • Izvietošana: Var izvietot caur Mesos, Hadoop caur Yarn vai paša Spark klastera pārvaldnieku.
  • Īsts laiks: Īsts laiksaprēķins un zems latentums atmiņas atmiņas dēļ.
  • Poliglots: Tas ir viens no vissvarīgākajiemIespējasšī ietvara, jo to var ieprogrammēt Scala, Java, Python un R

Kāpēc iet uz Python?

Lai gan Spark tika izstrādāta skalā, kas padara to gandrīz 10 reizes ātrāku nekā Python, bet Scala ir ātrāks tikai tad, ja izmantoto serdeņu skaits ir mazāks . Tā kā mūsdienās lielākajai daļai analīzes un procesu ir nepieciešams liels kodolu skaits, Scala veiktspējas priekšrocības nav tik lielas.



Programmētājiem Python ir salīdzinoši vieglāk mācīties tā sintakses un standarta bibliotēku dēļ. Turklāt tas ir dinamiski drukāta valoda, tas nozīmē, ka RDD var saturēt vairāku veidu objektus.

Lai gan Scala ir SparkMLlib tā nav pietiekami daudz bibliotēku un rīku mašīnmācībai un NLP mērķiem. Turklāt Scala trūkst datu vizualizācijas.

PySpark apmācība | Apache Spark ar Python | Edureka

Abonējiet mūsu youtube kanālu, lai iegūtu jaunus atjauninājumus ..!

Spark iestatīšana ar Python (PySpark)

Es ceru, ka jūs, puiši, zināt, kā .Tātad, kad esat to izdarījis atvienots dzirksteles fails, uzstādītas to un pievienoja tā ceļu .bashrc failu, jums jāievadaavots .bashrc

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

Lai atvērtu pyspark apvalku, jums jāievada komanda./bin/pyspark

Dzirksteļošana rūpniecībā

Apache Spark, jo tas ir apbrīnojams, piemēram, atmiņas apstrāde , poliglots un ātra apstrāde tiek izmantoti daudzi uzņēmumi visā pasaulē dažādiem mērķiem dažādās nozarēs:

Yahoo izmanto Apache Spark savām mašīnmācīšanās iespējām, lai personalizētu savus jaunumus, tīmekļa lapas un arī mērķa reklamēšanu. Viņi izmanto Spark with python, lai uzzinātu, kāda veida ziņas - lietotāji ir ieinteresēti lasīt un kategorizēt ziņas, lai uzzinātu, kādi lietotāji būtu ieinteresēti lasīt katru ziņu kategoriju.

binārā meklēšanas algoritms Java

TripAdvisor izmanto apache spark, lai sniegtu padomu miljoniem ceļotāju, salīdzinot simtiem vietņu, lai atrastu labākās viesnīcu cenas saviem klientiem. Laiks, kas nepieciešams viesnīcu atsauksmju lasīšanai un apstrādei lasāmā formātā, tiek veikts ar Apache Spark palīdzību.

Viena no pasaulē lielākajām e-komercijas platformām Alibaba vada dažus no lielākajiem Apache Spark darbiem pasaulē, lai savā e-komercijas platformā analizētu simtiem petabaitu datu.

PySpark SparkContext un datu plūsma

Runājot par Spark ar Python, darbu ar RDD ļauj bibliotēka Py4j. PySpark Shell saista Python API ar dzirksteles kodolu un inicializē Spark kontekstu. Dzirksteles konteksts ir jebkura dzirksteles pielietojuma sirds.

  1. Spark konteksts izveido iekšējos pakalpojumus un izveido savienojumu ar Spark izpildes vidi.
  2. Sparkcontext objekts draivera programmā koordinē visu sadalīto procesu un ļauj piešķirt resursus.
  3. Klastera vadītāji nodrošina izpildītājiem, kas ir JVM process, loģiku.
  4. SparkContext objekts nosūta lietojumprogrammu izpildītājiem.
  5. SparkContext izpilda uzdevumus katrā izpildītājā.

PySpark KDD lietošanas gadījums

Tagad apskatīsim lietojuma gadījumu KDD’99 kauss Starptautiskais zināšanu atklāšanas un datu ieguves rīku konkurss).Šeit mēs ņemsim daļu no datu kopas, jo sākotnējā datu kopa ir pārāk liela

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

RDD IZVEIDE:
Tagad mēs varam izmantot šo failu izveidojiet mūsu RDD .

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

FILTRĒŠANA:

Pieņemsim, ka mēs vēlamies saskaitīt, cik normālu. mijiedarbība, kāda mums ir mūsu datu kopā. Mēs varam filtru mūsu raw_data RDD šādi.

normal_raw_data = raw_data.filter (lambda x: 'normāls.' x)

COUNT:

Tagad mēs varam skaitīt cik daudz elementu mums ir jaunajā RDD.

no laika importēšanas laiks t0 = laiks () normal_count = normal_raw_data.count () tt = time () - t0 print 'Ir {}' normālas 'mijiedarbības'. formāts (normāls_skaitlis) drukāt 'Skaits pabeigts pēc {} sekundēm'. formāts (apaļa (tt, 3))

Izeja:

Ir 97278 “parasto” mijiedarbību skaits, kas pabeigts 5,951 sekundes laikā

KARTĒŠANA:

Šajāgadījumāmēs vēlamies lasīt mūsu datu failu kā CSV formātu. Mēs to varam izdarīt, katram RDD elementam piemērojot lambda funkciju šādi. Šeit mēs izmantosim karte () un veikt () transformāciju.

from pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Parsēšana pabeigta {} sekundēs '.formāts (apaļš (tt, 3)) pprint (head_rows [0])

Izeja:

Parsēšana pabeigta 1.715 sekundēs [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normāls. ']

SPLITTING:

Tagad mēs vēlamies, lai katrs RDD elements būtu atslēgas un vērtību pāris, kur atslēga ir tags (piem., normāli ), un vērtība ir viss elementu saraksts, kas apzīmē CSV formatētā faila rindu. Mēs varētu rīkoties šādi. Šeit mēs izmantojam line.split () un karte ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Izeja: (u'normāls. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normāls. '])

KOLEKCIJAS RĪCĪBA:

Šeit mēs izmantosim darbību collect (). Tas visus RDD elementus iegūs atmiņā. Šī iemesla dēļ tas ir jālieto uzmanīgi, strādājot ar lieliem RDD.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Dati savākti {} sekundēs'. formāts (apaļa (tt, 3))

Izeja:

Dati apkopoti 17,927 sekundēs

Protams, tas prasīja ilgāku laiku kā jebkura cita darbība, kuru mēs izmantojām iepriekš. Katrs Spark darbinieka mezgls, kuram ir RDD fragments, ir jākoordinē, lai izgūtu tā daļu un pēc tam visu samazinātu kopā.

Kā pēdējo piemēru, kurā apvienoti visi iepriekšējie, mēs vēlamies apkopot visusnormālimijiedarbība kā atslēgu un vērtību pāri.

# iegūt datus no faila data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # parsēt atslēgas vērtību pāros key_csv_data = raw_data.map (parse_interaction) # filtrēt parasto atslēgu mijiedarbību normal_key_interaction = key_csv_data.filter lambda x: x [0] == 'normāli.') # apkopot visus t0 = laiks () visi_normālie = normālie_atslēgu_mijiedarbības.collect () tt = laiks () - t0 normāls_skaitījums = len (visi_normālie) drukāt '.format (round (tt, 3)) print' Ir {} 'normālas' mijiedarbības'.format (normal_count)

Izeja:

Dati, kas savākti 12,485 sekundēs. Ir 97278 normālas mijiedarbības

Tā tas ir, puiši!

Es ceru, ka jums patika šis Spark with Python emuārs. Ja jūs to lasāt, apsveicu! Jūs vairs neesat PySpark iesācējs. Izmēģiniet šo vienkāršo piemēru savās sistēmās tūlīt.

Tagad, kad esat sapratis PySpark pamatus, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Python Spark sertifikācijas apmācība, izmantojot PySpark ir paredzēts, lai sniegtu jums zināšanas un prasmes, kas nepieciešamas, lai kļūtu par veiksmīgu Spark izstrādātāju, izmantojot Python, un sagatavotu jūs Cloudera Hadoop un Spark Developer sertifikācijas eksāmenam (CCA175).

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.