Tutorial PySpark - Μάθετε Apache Spark χρησιμοποιώντας το Python



Σε αυτό το ιστολόγιο στο PySpark Tutorial, θα μάθετε για το PSpark API που χρησιμοποιείται για την εργασία με το Apache Spark χρησιμοποιώντας τη γλώσσα προγραμματισμού Python.

Σε έναν κόσμο όπου τα δεδομένα παράγονται με τόσο ανησυχητικό ρυθμό, η σωστή ανάλυση αυτών των δεδομένων τη σωστή στιγμή είναι πολύ χρήσιμη. Ένα από τα πιο εκπληκτικά πλαίσια για τη διαχείριση μεγάλων δεδομένων σε πραγματικό χρόνο και την εκτέλεση ανάλυσης είναι το Apache Spark.Μαζί, ή το PySpark είναι ένα από τα πιο περιζήτητα μαθήματα πιστοποίησης, δίνοντας στο Scala for Spark ένα τρέξιμο για τα χρήματά του. Έτσι σε αυτό Εκμάθηση PySpark blog, θα συζητήσω τα ακόλουθα θέματα:





Εκμάθηση PySpark: Τι είναι το PySpark;

Το Apache Spark είναι ένα γρήγορο πλαίσιο υπολογιστικών συμπλεγμάτων που χρησιμοποιείται για την επεξεργασία, την αναζήτηση και την ανάλυση δεδομένων Big. Βασισμένο σε υπολογισμούς In-memory, έχει ένα πλεονέκτημα έναντι πολλών άλλων μεγάλων δεδομένων Frameworks.

Χαρακτηριστικά PySpark - Tutorial PySpark - Edureka



Αρχικά γραμμένο στη γλώσσα προγραμματισμού Scala, η κοινότητα ανοιχτού κώδικα ανέπτυξε ένα καταπληκτικό εργαλείο για την υποστήριξη της Python για Apache Spark. Το PySpark βοηθά τους επιστήμονες δεδομένων να αλληλεπιδρούν με RDD στο Apache Spark και στο Python μέσω της βιβλιοθήκης του Py4j. Υπάρχουν πολλές δυνατότητες που κάνουν το PySpark καλύτερο πλαίσιο από άλλα:

εικονική συνάρτηση c ++ = 0
  • Ταχύτητα: Είναι 100x γρηγορότερο από τα παραδοσιακά πλαίσια επεξεργασίας δεδομένων μεγάλης κλίμακας
  • Ισχυρή προσωρινή αποθήκευση: Το απλό επίπεδο προγραμματισμού παρέχει ισχυρές δυνατότητες προσωρινής αποθήκευσης και αποθήκευσης δίσκου
  • Ανάπτυξη: Μπορεί να αναπτυχθεί μέσω του Mesos, του Hadoop μέσω του Νήματος ή του cluster manager του Spark
  • Πραγματικός χρόνος: Υπολογισμός σε πραγματικό χρόνο και χαμηλός λανθάνων χρόνος λόγω υπολογισμού στη μνήμη
  • Πολύγλωσσος: Υποστηρίζει προγραμματισμό σε Scala, Java, Python και R

Ας προχωρήσουμε με το PySpark Tutorial Blog και να δούμε πού χρησιμοποιείται το Spark στον κλάδο.

PySpark στη βιομηχανία

Κάθε κλάδος περιστρέφεται γύρω από τα Big Data και όπου υπάρχει Big Data υπάρχει ανάλυση. Ας ρίξουμε μια ματιά στις διάφορες βιομηχανίες όπου χρησιμοποιείται το Apache Spark.



Ήμισυ είναι μια από τις μεγαλύτερες βιομηχανίες που αναπτύσσονται σε απευθείας σύνδεση ροή. Netflix χρησιμοποιεί το Apache Spark για επεξεργασία ροής σε πραγματικό χρόνο για να παρέχει εξατομικευμένες διαδικτυακές προτάσεις στους πελάτες του. Επεξεργάζεται 450 δισεκατομμύρια συμβάντα ανά ημέρα που ρέουν σε εφαρμογές διακομιστή.

Χρηματοδότηση είναι ένας άλλος τομέας όπου η επεξεργασία σε πραγματικό χρόνο του Apache Spark παίζει σημαντικό ρόλο. Οι τράπεζες χρησιμοποιούν το Spark για πρόσβαση και ανάλυση των προφίλ κοινωνικών μέσων, για να αποκτήσουν πληροφορίες που μπορούν να τους βοηθήσουν να λάβουν σωστές επιχειρηματικές αποφάσεις εκτίμηση πιστωτικού κινδύνου , στοχευμένες διαφημίσεις και τμηματοποίηση πελατών. Πελάτης μειώνεται επίσης με τη χρήση του Spark. Ανίχνευση απάτης είναι ένας από τους πιο ευρέως χρησιμοποιούμενους τομείς της Μηχανικής Μάθησης όπου εμπλέκεται το Spark.

Φροντίδα υγείας οι πάροχοι χρησιμοποιούν το Apache Spark στο Αναλύστε τα αρχεία των ασθενών μαζί με προηγούμενα κλινικά δεδομένα για τον προσδιορισμό των ασθενών που είναι πιθανό να αντιμετωπίσουν προβλήματα υγείας μετά την έξοδο από την κλινική. Το Apache Spark χρησιμοποιείται στο Γονιδιωματική ακολουθία για να μειωθεί ο χρόνος που απαιτείται για την επεξεργασία δεδομένων γονιδιώματος.

Λιανικό εμπόριο και ηλεκτρονικό εμπόριο είναι μια βιομηχανία όπου κανείς δεν μπορεί να φανταστεί ότι λειτουργεί χωρίς τη χρήση ανάλυσης και στοχευμένης διαφήμισης. Μία από τις μεγαλύτερες πλατφόρμες ηλεκτρονικού εμπορίου σήμερα Άλιμπαμπα εκτελεί μερικές από τις μεγαλύτερες εργασίες Spark στον κόσμο, προκειμένου να αναλύσει petabytes δεδομένων. Η Alibaba παίζει εξαγωγή χαρακτηριστικών σε δεδομένα εικόνας. eBay χρησιμοποιεί το Apache Spark για να παρέχει Στοχευμένες προσφορές , βελτιώστε την εμπειρία των πελατών και βελτιστοποιήστε τη συνολική απόδοση.

Ταξίδι Οι βιομηχανίες χρησιμοποιούν επίσης το Apache Spark. Στο TripAdvisor , ένας κορυφαίος ταξιδιωτικός ιστότοπος που βοηθά τους χρήστες να σχεδιάσουν ένα τέλειο ταξίδι χρησιμοποιεί το Apache Spark για να επιταχύνει το δικό του εξατομικευμένες προτάσεις πελατών . Το TripAdvisor χρησιμοποιεί apache spark για να παρέχει συμβουλές σε εκατομμύρια ταξιδιώτες από σύγκριση εκατοντάδων ιστότοπων για να βρει τις καλύτερες τιμές ξενοδοχείων για τους πελάτες της.

Μια σημαντική πτυχή αυτού του PySpark Tutorial είναι να κατανοήσουμε γιατί πρέπει να πάμε για το Python; Γιατί όχι Java, Scala ή R;

Εγγραφείτε στο κανάλι σας στο YouTube για να λαμβάνετε νέες ενημερώσεις ..!


Γιατί να πάτε για Python;

Εύκολο στην εκμάθηση: Για τους προγραμματιστές το Python είναι συγκριτικά ευκολότερο να μάθει λόγω της σύνταξης και των τυπικών βιβλιοθηκών του. Επιπλέον, είναι μια δυναμικά δακτυλογραφημένη γλώσσα, που σημαίνει ότι τα RDD μπορούν να κρατούν αντικείμενα πολλαπλών τύπων.

Ένα τεράστιο σύνολο βιβλιοθηκών: Η Scala δεν διαθέτει επαρκή εργαλεία επιστήμης δεδομένων και βιβλιοθήκες όπως το Python για μηχανική εκμάθηση και επεξεργασία φυσικής γλώσσας. Επιπλέον, η Scala δεν διαθέτει καλή οπτικοποίηση και τοπικούς μετασχηματισμούς δεδομένων.

Τεράστια υποστήριξη κοινότητας: Η Python έχει μια παγκόσμια κοινότητα με εκατομμύρια προγραμματιστές που αλληλεπιδρούν διαδικτυακά και εκτός σύνδεσης σε χιλιάδες εικονικές και φυσικές τοποθεσίες.

Ένα από τα πιο σημαντικά θέματα σε αυτό το PySpark Tutorial είναι η χρήση RDDs. Ας καταλάβουμε τι είναι τα RDD

Spark RDDs

Όταν πρόκειται για επαναληπτικούς κατανεμημένους υπολογιστές, δηλαδή επεξεργασία δεδομένων σε πολλές εργασίες σε υπολογισμούς, πρέπει να επαναχρησιμοποιήσουμε ή να μοιραστούμε δεδομένα μεταξύ πολλών εργασιών. Παλαιότερα πλαίσια όπως το Hadoop αντιμετώπισαν προβλήματα κατά την αντιμετώπιση πολλαπλών λειτουργιών / εργασιών όπως

  • Αποθήκευση δεδομένων σε ενδιάμεσο χώρο αποθήκευσης, όπως HDFS
  • Πολλές εργασίες εισόδου / εξόδου καθιστούν τους υπολογισμούς αργούς
  • Οι επαναλήψεις και οι σειριοποιήσεις που με τη σειρά τους καθιστούν τη διαδικασία ακόμη πιο αργή

Οι RDD προσπαθούν να λύσουν όλα τα προβλήματα, επιτρέποντας υπολογισμούς In-memory κατανεμημένους ανθεκτικούς σε σφάλματα. Το RDD είναι σύντομο Ανθεκτικά κατανεμημένα σύνολα δεδομένων. Το RDD είναι μια κατανεμημένη αφαίρεση μνήμης που επιτρέπει στους προγραμματιστές να εκτελούν υπολογισμούς στη μνήμη σε μεγάλα συμπλέγματα με τρόπο ανεκτικό σε σφάλματα. Είναι το συλλογή αντικειμένων μόνο για ανάγνωση κατατμηθεί σε ένα σύνολο μηχανημάτων που μπορούν να ξαναχτιστούν εάν χαθεί ένα διαμέρισμα. Υπάρχουν πολλές λειτουργίες που εκτελούνται σε RDD:

  • Μετασχηματισμοί: Οι μετασχηματισμοί δημιουργούν ένα νέο σύνολο δεδομένων από ένα υπάρχον. Τεμπέλη αξιολόγηση
  • Ενέργειες: Το Spark επιβάλλει τους υπολογισμούς για εκτέλεση μόνο όταν πραγματοποιούνται ενέργειες στα RDDs

Ας καταλάβουμε μερικούς Μετασχηματισμούς, Ενέργειες και Λειτουργίες

Διαβάζοντας ένα αρχείο και Εμφάνιση κορυφαίων στοιχείων n:

rdd = sc.textFile ('file: /// home / edureka / Desktop / Sample') rdd.take (n)

Παραγωγή:

[Η αποψίλωση των δασών αναδύεται ως το κύριο περιβαλλοντικό και κοινωνικό ζήτημα που έχει πλέον λάβει τη μορφή περισσότερο από έναν ισχυρό δαίμονα. Πρέπει να γνωρίζουμε τις αιτίες, τα αποτελέσματα και τους τρόπους επίλυσης των προβλημάτων που προκύπτουν λόγω της αποψίλωσης των δασών. «Παρέχουμε πολλές παραγράφους, μακρύ και σύντομο δοκίμιο για την αποψίλωση των δασών, προκειμένου να βοηθήσουμε τα παιδιά και τα παιδιά σας να ενημερωθούν για το πρόβλημα καθώς και να συμμετάσχουν στον διαγωνισμό συγγραφής δοκιμών στο σχολείο ή έξω από το σχολείο. Μπορείτε να επιλέξετε οποιοδήποτε δοκίμιο αποψίλωσης που δίνεται παρακάτω σύμφωνα με το πρότυπο της τάξης. «Η αποψίλωση των δασών προκύπτει ως το μεγαλύτερο παγκόσμιο πρόβλημα για την κοινωνία και το περιβάλλον.»]

Μετατροπή σε πεζά και διαχωριστικά: (Κάτω και Σπλιτ)

def Func (lines): lines = lines.lower () lines = lines.split () γραμμές επιστροφής rdd1 = rdd.map (Func) rdd1.take (5)

Παραγωγή:

[[u'deforestation ', u'is', u'arising ', u'as', u'the ', u'main', u'environmental ', u'and', u'social ', u'issue ', u'which', u'has ', u'now', u'taken ', ...... . . ]

Κατάργηση StopWords: (Φίλτρο)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'and', 'be', 'be', 'from', 'had' , 'I', 'I ',' why ',' with '] rdd2 = rdd1.filter (lambda z: z not in stop_words) rdd2.take (10)

Παραγωγή:

[u'deforestation ', u'arising', u'main ', u'environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Άθροισμα αριθμών από 1 έως 500: (Μείωση)

sum_rdd = sc.parallelize (εύρος (1.500)) sum_rdd.reduce (lambda x, y: x + y)

Παραγωγή:

124750

Μηχανική εκμάθηση με το PySpark

Συνεχίζοντας το PySpark Tutorial Blog, ας αναλύσουμε ορισμένα δεδομένα BasketBall και κάνουμε κάποια μελλοντική πρόβλεψη. Λοιπόν, εδώ θα χρησιμοποιήσουμε τα δεδομένα μπάσκετ όλων των παικτών του NBA από τότε 1980 [έτος εισαγωγής 3 δεικτών].

Φόρτωση δεδομένων:

df = spark.read.option ('header', 'true') .option ('inferSchema', 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

Εκτύπωση στηλών:

πώς να αντιστρέψετε τη συμβολοσειρά στο python
εκτύπωση (df. στήλες)

Παραγωγή:

['_c0', 'player', 'pos', 'age', 'team_id', 'g', 'gs', 'mp', 'fg', 'fga', 'fg_pct', 'fg3', ' fg3a ',' fg3_pct ',' fg2 ',' fg2a ',' fg2_pct ',' efg_pct ',' ft ',' fta ',' ft_pct ',' orb ',' drb ',' trb ',' ast ' , 'stl', 'blk', 'tov', 'pf', 'pts', 'yr']

Ταξινόμηση παικτών (OrderBy) και toPandas:

Εδώ ταξινομούμε παίκτες με βάση τους πόντους που σημειώθηκαν σε μια σεζόν.

df.orderBy ('pts', ascending = False) .limit (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Παραγωγή:

Χρήση DSL και matplotlib:

Εδώ αναλύουμε τον μέσο αριθμό 3 πόντους προσπάθειες για κάθε σεζόν σε χρονικό όριο 36 λεπτά [ένα διάστημα που αντιστοιχεί σε ένα κατά προσέγγιση πλήρες παιχνίδι NBA με επαρκή ανάπαυση]. Υπολογίζουμε αυτήν τη μέτρηση χρησιμοποιώντας τον αριθμό των προσπαθειών γκολ 3 πόντων (fg3a) και των λεπτών που παίζονται (mp) και μετά σχεδιάζουμε το αποτέλεσμα χρησιμοποιώντας matlplotlib .

από pyspark.sql.functions εισαγωγή col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}) .select (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Ψευδώνυμο ('fg3a_p36m')) .orderBy ('yr') από το matplotlib εισαγωγή pyplot ως plt εισαγωγή seaborn ως sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('Μέσος όρος παίκτη 3-προσπάθειες (ανά 36 λεπτά) ') plt.annotate (' 3 pointer متعارف ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' grey ', shrink = 0, linewidth = 2)) plt.annotate (' NBA μετακινήθηκε σε γραμμή 3 σημείων ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'γκρι', συρρίκνωση = 0, linewidth = 2)) plt.annotate ('NBA μετακινήθηκε πίσω γραμμή 3 σημείων', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, = υπαγόρευση (facecolor = 'grey', shrink = 0, linewidth = 2))

Παραγωγή:

Γραμμική παλινδρόμηση και VectorAssembler:

Μπορούμε να χωρέσουμε ένα μοντέλο γραμμικής παλινδρόμησης σε αυτήν την καμπύλη για να μοντελοποιήσουμε τον αριθμό των προσπαθειών πυροβολισμού για τα επόμενα 5 χρόνια. Πρέπει να μετατρέψουμε τα δεδομένα μας χρησιμοποιώντας τη συνάρτηση VectorAssembler σε μία μόνο στήλη. Αυτό είναι ένα απαίτηση για το γραμμικό API παλινδρόμησης στο MLlib.

από pyspark.ml.feature import VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'features') training = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label) ', fga_py.fg3a_p36m) training.toPandas (). κεφάλι ()

Παραγωγή:

Μοντέλο δόμησης:

Στη συνέχεια χτίζουμε το αντικείμενο του μοντέλου γραμμικής παλινδρόμησης χρησιμοποιώντας τα μετασχηματισμένα δεδομένα μας.

από pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (εκπαίδευση)

Εφαρμογή εκπαιδευμένου μοντέλου σε σύνολο δεδομένων:

Εφαρμόζουμε το εκπαιδευμένο μοντέλο αντικειμένου μοντέλου στο αρχικό μας εκπαιδευτικό σύνολο μαζί με 5 χρόνια μελλοντικών δεδομένων

από pyspark.sql.types import Row # apply model για την περίοδο 1979-80 έως την περίοδο 2020-21 training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). collect () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collect () prediction_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # built testing DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (baris) .toDF ()) # εφαρμόστε μοντέλο γραμμικής παλινδρόμησης df_results = model.transform (all_years_features) .toPandas ()

Σχεδιάζοντας την τελική πρόβλεψη:

Στη συνέχεια μπορούμε να σχεδιάσουμε τα αποτελέσματά μας και να αποθηκεύσουμε το γράφημα σε μια καθορισμένη τοποθεσία.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (training_yrs, training_y, color = '# f08080) ', label = Κανένα) plt.xlabel (' Year ') plt.ylabel (' Αριθμός προσπαθειών ') plt.legend (loc = 4) _ = plt.title (' Μέσες προσπάθειες παίκτη 3 πόντων (ανά 36 λεπτά) ') plt.tight_layout () plt.savefig (' / home / edureka / Λήψεις / Εικόνες / REGRESSION.png ')

Παραγωγή:

Και με αυτό το γράφημα, φτάνουμε στο τέλος αυτού του PySpark Tutorial Blog.

Αυτό είναι, παιδιά!

Ελπίζω να έχετε μια ιδέα για το τι είναι το PySpark, γιατί το Python ταιριάζει καλύτερα για το Spark, τα RDDs και μια ματιά της Machine Learning με το Pyspark σε αυτό το PySpark Tutorial Blog. Συγχαρητήρια, δεν είστε πλέον αρχάριοι στο PySpark. Εάν θέλετε να μάθετε περισσότερα για το PySpark και να κατανοήσετε τις διάφορες περιπτώσεις χρήσης βιομηχανίας, ρίξτε μια ματιά στο Spark με τον Python Ιστολόγιο

Τώρα που έχετε καταλάβει τι είναι το Pyspark, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το Edureka's Εκπαίδευση πιστοποίησης Python Spark χρησιμοποιώντας το PySpark έχει σχεδιαστεί για να σας παρέχει τις γνώσεις και τις δεξιότητες που απαιτούνται για να γίνετε επιτυχημένος προγραμματιστής Spark χρησιμοποιώντας το Python και να σας προετοιμάσει για την εξέταση πιστοποίησης προγραμματιστή Cloudera Hadoop και Spark (CCA175).