Introducere în Spark cu Python - PySpark pentru începători



Apache Spark a preluat lumea Big Data & Analytics, iar Python este unul dintre cele mai accesibile limbaje de programare utilizate în industrie în prezent. Așadar, aici, pe acest blog, vom afla despre Pyspark (scânteie cu python) pentru a obține cele mai bune rezultate din ambele lumi.

este unul dintre cele mai utilizate cadre atunci când vine vorba de manipularea și lucrul cu Big Data AND Piton este unul dintre cele mai utilizate limbaje de programare pentru analiza datelor, învățarea automată și multe altele. Deci, de ce să nu le folosim împreună? Aici e locul Spark cu Python de asemenea cunoscut ca si PySpark vine înimagine.

Cu un salariu mediu de 110.000 USD pe an pentru un dezvoltator Apache Spark, nu există nicio îndoială că Spark este folosit foarte mult în industrie. Din cauzaesteset de biblioteci bogate, Python este folosit demajoritatea oamenilor de știință a datelor și a experților în analiză astăzi. Integrarea Python cu Spark a fost un dar major pentru comunitate. Spark a fost dezvoltat în limbajul Scala, care este foarte asemănător cu Java. Compilează codul de program în bytecode pentru JVM pentru prelucrarea de date mari. Pentru a sprijini Spark cu python, comunitatea Apache Spark a lansat PySpark.De atunci, a fost cunoscut a fi una dintre cele mai căutate abilități din întreaga industrie datorită gamei largi de beneficii care a venit după combinarea celor mai bune din ambele lumi.În acest blog Spark with Python, voi discuta despre următoarele subiecte.





Introducere în Apache Spark

Apache Spark este un cadru open-source de calcul pentru cluster procesare în timp real dezvoltat de Apache Software Foundation. Spark oferă o interfață pentru programarea unor clustere întregi cu implicit paralelismul datelor și toleranță la erori.



Mai jos sunt câteva dintre caracteristicile Apache Spark, care îi oferă un avantaj față de alte cadre:

Caracteristici Spark - Spark cu Python - Edureka

  • Viteză: Este de 100 de ori mai rapid decât cadrele tradiționale de procesare a datelor pe scară largă.
  • Caching puternic: Stratul de programare simplu oferă capacități puternice de stocare în cache și persistență pe disc.
  • Implementare: Poate fi implementat prin Mesos, Hadoop prin Yarn sau propriul manager de cluster Spark.
  • Timp real: Timp realcalcul și latență scăzută datorită calculului în memorie.
  • Poliglot: Este una dintre cele mai importanteCaracteristicia acestui cadru, deoarece poate fi programat în Scala, Java, Python și R.

De ce să mergi pentru Python?

Deși Spark a fost proiectat în scala, ceea ce îl face de aproape 10 ori mai rapid decât Python, dar Scala este mai rapid doar atunci când numărul de nuclee utilizate este mai mic . Deoarece majoritatea analizelor și procesului necesită în prezent un număr mare de nuclee, avantajul de performanță al Scala nu este atât de mare.



Pentru programatori Python este relativ mai ușor a invata datorită sintaxei și bibliotecilor standard. Mai mult, este un limbaj tastat dinamic, ceea ce înseamnă că RDD-urile pot conține obiecte de mai multe tipuri.

Deși Scala are SparkMLlib nu are suficiente biblioteci și instrumente pentru Machine Learning și NLP scopuri. Mai mult, Scala nu are vizualizare date.

Training PySpark | Apache Spark cu Python | Edureka

Abonați-vă la canalul nostru YouTube pentru a primi noi actualizări ..!

Configurarea Spark cu Python (PySpark)

Sper că voi știți cum .Deci, odată ce ai făcut-o dezarhivat fișierul scânteie, instalat și a adăugat calea către .bashrc fișier, trebuie să tastațisursa .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

Pentru a deschide pyspark shell trebuie să tastați comanda./bin/pyspark

Scânteie în industrie

Apache Spark datorită caracteristicilor sale uimitoare, cum ar fi procesare în memorie , poliglot și procesare rapidă sunt utilizate de multe companii din întreaga lume pentru diverse scopuri în diverse industrii:

Yahoo folosește Apache Spark pentru capacitățile sale de Machine Learning pentru a-și personaliza știrile, paginile web și, de asemenea, pentru publicitatea țintă. Folosesc Spark cu python pentru a afla ce fel de știri - utilizatorii sunt interesați să citească și să clasifice știrile pentru a afla ce fel de utilizatori ar fi interesați să citească fiecare categorie de știri.

TripAdvisor folosește apache spark pentru a oferi sfaturi milioanelor de călători, comparând sute de site-uri web pentru a găsi cele mai bune prețuri hoteliere pentru clienții săi. Timpul necesar pentru citirea și procesarea recenziilor hotelurilor într-un format lizibil se face cu ajutorul Apache Spark.

Una dintre cele mai mari platforme de comerț electronic din lume Alibaba rulează unele dintre cele mai mari locuri de muncă Apache Spark din lume pentru a analiza sute de petabyte de date pe platforma sa de comerț electronic.

PySpark SparkContext și Flux de date

Vorbind despre Spark cu Python, lucrul cu RDD-uri este posibil prin biblioteca Py4j. PySpark Shell leagă API-ul Python pentru a declanșa nucleul și inițializează contextul Spark. Spark Context este inima oricărei aplicații de scânteie.

  1. Contextul Spark configurează servicii interne și stabilește o conexiune la un mediu de execuție Spark.
  2. Obiectul sparkcontext din programul driver coordonează tot procesul distribuit și permite alocarea resurselor.
  3. Managerii de cluster furnizează executanților, care sunt proces JVM cu logică.
  4. Obiectul SparkContext trimite aplicația executanților.
  5. SparkContext execută sarcini în fiecare executant.

Caz de utilizare PySpark KDD

Acum să aruncăm o privire la un caz de utilizare a Cupa KDD’99 (Concurs internațional de descoperire a cunoștințelor și instrumente de exploatare a datelor).Aici vom lua o fracțiune din setul de date deoarece setul de date original este prea mare

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

CREAREA RDD:
Acum putem folosi acest fișier pentru creați RDD-ul nostru .

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

FILTRARE:

Să presupunem că vrem să numărăm câte normal. interacțiunile pe care le avem în setul nostru de date. Noi putem filtru RDD-ul nostru raw_data după cum urmează.

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

NUMARA:

Acum putem numara câte elemente avem în noul RDD.

din timp import timp t0 = time () normal_count = normal_raw_data.count () tt = time () - t0 print 'Există {} interacțiuni' normale '. format (normal_count) print' Număr completat în {} secunde '. format (rotund (tt, 3))

Ieșire:

Există 97278 de interacțiuni „normale” Număr finalizat în 5.951 secunde

MAPPING:

In acestcazdorim să citim fișierul nostru de date ca format CSV. Putem face acest lucru aplicând o funcție lambda fiecărui element din RDD după cum urmează. Aici vom folosi map () și transformare take ().

din pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Parse finalizat în {} secunde '.format (round (tt, 3)) pprint (head_rows [0])

Ieșire:

Analiza finalizată în 1.715 secunde [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

DESPICARE:

Acum vrem să avem fiecare element din RDD ca o pereche cheie-valoare în care cheia este eticheta (de ex. normal ) și valoarea este întreaga listă de elemente care reprezintă rândul din fișierul formatat CSV. Am putea proceda după cum urmează. Aici folosim line.split () și map ().

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] )
 Ieșire: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0.00 ', u'1.00', .... U'normal. '])

ACȚIUNEA COLECTĂ:

Aici vom folosi acțiunea collect (). Va introduce toate elementele RDD în memorie. Din acest motiv, trebuie utilizat cu grijă atunci când se lucrează cu RDD-uri mari.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Date colectate în {} secunde'. format (round (tt, 3))

Ieșire:

Date colectate în 17.927 secunde

Asta a durat mai mult ca orice altă acțiune pe care am folosit-o înainte, desigur. Fiecare nod lucrător Spark care are un fragment din RDD trebuie coordonat pentru a-și recupera partea și apoi a reduce totul împreună.

Ca un ultim exemplu care combină toate cele anterioare, dorim să colectăm toatenormalinteracțiunile ca perechi cheie-valoare.

java este-o relație
. lambda x: x [0] == 'normal.') # collect all t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Date colectate în {} secunde '.format (round (tt, 3)) print' Există {} interacțiuni 'normale' .format (normal_count)

Ieșire:

Date colectate în 12.485 secunde Există 97278 de interacțiuni normale

Deci asta este, băieți!

Sper că v-a plăcut acest blog Spark with Python. Dacă citești asta, Felicitări! Nu mai sunteți un începător în PySpark. Încercați acest exemplu simplu pe sistemele dvs. acum.

Acum că ați înțeles elementele de bază ale PySpark, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Edureka’s Instruire de certificare Python Spark folosind PySpark este conceput pentru a vă oferi cunoștințele și abilitățile necesare pentru a deveni un dezvoltator Spark de succes folosind Python și pentru a vă pregăti pentru examenul de certificare Cloudera Hadoop și Spark Developer (CCA175).

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii și vă vom răspunde.