Tutorial PySpark Dataframe - Προγραμματισμός PySpark με Dataframes



Σε αυτό το blog φροντιστηρίου PySpark Dataframe, θα μάθετε για μετασχηματισμούς και ενέργειες στο Apache Spark με πολλά παραδείγματα.

Τα Dataframes είναι μια λέξη-κλειδί στη βιομηχανία σήμερα. Οι άνθρωποι τείνουν να το χρησιμοποιούν με δημοφιλείς γλώσσες που χρησιμοποιούνται για την Ανάλυση Δεδομένων, όπως Python, Scala και R.Επιπλέον, με την προφανή ανάγκη χειρισμού σύνθετων εργασιών ανάλυσης και munging για Big Data, Python for Spark ή έχει γίνει μια από τις πιο περιζήτητες δεξιότητες στον κλάδο σήμερα.Λοιπόν, γιατί όλοι το χρησιμοποιούν τόσο πολύ; Ας το καταλάβουμε αυτό με μας Εκπαιδευτικό πλαίσιο δεδομένων PySpark ιστολόγιο. Σε αυτό το ιστολόγιο θα καλύψω τα ακόλουθα θέματα:





Tutorial PySpark Dataframe: Τι είναι τα Dataframes;

Τα πλαίσια δεδομένων αναφέρονται γενικά σε μια δομή δεδομένων, η οποία έχει χαρακτήρα πίνακα. Αντιπροσωπεύει σειρές, καθεμία από τις οποίες αποτελείται από έναν αριθμό παρατηρήσεων. Οι σειρές μπορούν να έχουν μια ποικιλία μορφών δεδομένων ( Ετερογενής ), ενώ μια στήλη μπορεί να έχει δεδομένα του ίδιου τύπου δεδομένων ( Ομοιογενής ). Τα πλαίσια δεδομένων συνήθως περιέχουν ορισμένα μεταδεδομένα εκτός από δεδομένα, για παράδειγμα, ονόματα στηλών και σειρών.

Dataframe-Pyspark-Dataframe-Tutorial



Μπορούμε να πούμε ότι τα πλαίσια δεδομένων δεν είναι τίποτα, αλλά δομή δεδομένων 2 διαστάσεων, παρόμοια με έναν πίνακα SQL ή ένα υπολογιστικό φύλλο. Τώρα ας προχωρήσουμε με αυτό το PySpark Dataframe Tutorial και να καταλάβουμε γιατί ακριβώς χρειαζόμαστε το Pyspark Dataframe;

Γιατί χρειαζόμαστε πλαίσια δεδομένων;

1. Επεξεργασία δομημένων και ημι-δομημένων δεδομένων



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

2. Σ αδειοδότηση και ζάρια

Πλαίσιο δεδομένων ΑΤα PI συνήθως υποστηρίζουν περίπλοκες μεθόδους για τεμαχισμός και τεμαχισμός τα δεδομένα. Περιλαμβάνειλειτουργίαns όπως 'επιλογή' σειρών, στηλών και κελιών με όνομα ή αριθμό, φιλτράρισμα γραμμών κ.λπ. Τα στατιστικά δεδομένα είναι συνήθως πολύ ακατάστατα και περιέχουν πολλές ελλείπουσες και λανθασμένες τιμές και παραβιάσεις εύρους. Έτσι, ένα εξαιρετικά σημαντικό χαρακτηριστικό των πλαισίων δεδομένων είναι η ρητή διαχείριση των δεδομένων που λείπουν.

3. Πηγές δεδομένων

Το DataFrame υποστηρίζει ένα ευρύ φάσμα μορφής δεδομένων και πηγών, θα το εξετάσουμε αργότερα σε αυτό το ιστολόγιο Pyspark Dataframe Tutorial. Μπορούν να λάβουν δεδομένα από διάφορες πηγές.

4. Υποστήριξη για πολλές γλώσσες

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

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

Χαρακτηριστικά των πλαισίων δεδομένων

  • Τα πλαίσια δεδομένων είναι Διανέμονται στη Φύση, γεγονός που το καθιστά ανθεκτικό σε σφάλματα και ιδιαίτερα διαθέσιμη δομή δεδομένων.
  • Τεμπέλη αξιολόγηση είναι μια στρατηγική αξιολόγησης που κρατά την αξιολόγηση μιας έκφρασης έως ότου απαιτείται η αξία της. Αποφεύγει την επαναλαμβανόμενη αξιολόγηση. Η αργή αξιολόγηση στο Spark σημαίνει ότι η εκτέλεση δεν θα ξεκινήσει έως ότου ενεργοποιηθεί μια ενέργεια. Στο Spark, η εικόνα της τεμπέλης αξιολόγησης έρχεται όταν συμβαίνουν μετασχηματισμοί Spark.
  • Τα πλαίσια δεδομένων είναι Αμετάβλητος στη φύση. Με αμετάβλητο εννοώ ότι είναι ένα αντικείμενο του οποίου η κατάσταση δεν μπορεί να τροποποιηθεί αφού δημιουργηθεί.Αλλά μπορούμε να αλλάξουμετουτιμές εφαρμόζονταςένα ορισμένομετασχηματισμός, όπως σε RDD.

Πηγές δεδομένων πλαισίου PySpark

Τα πλαίσια δεδομένων στο Pyspark μπορούν να δημιουργηθούν με πολλούς τρόπους:

Τα δεδομένα μπορούν να φορτωθούν μέσω ενός CSV, JSON, XML ή ένα αρχείο παρκέ. Μπορεί επίσης να δημιουργηθεί χρησιμοποιώντας ένα υπάρχον RDD και μέσω οποιασδήποτε άλλης βάσης δεδομένων, όπως Κυψέλη ή Κασσάνδρα επισης. Μπορεί επίσης να λάβει δεδομένα από HDFS ή το τοπικό σύστημα αρχείων.

Δημιουργία πλαισίου δεδομένων

Ας προχωρήσουμε με αυτό το ιστολόγιο PySpark Dataframe Tutorial και κατανοήστε πώς να δημιουργήσετε Dataframes.

Θα δημιουργήσουμε παρουσίες υπαλλήλων και τμημάτων.

από pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'gaji') ملازم1 = Υπάλληλος ('Basher', 'armbrust', 'bash@edureka.co', 100000) ملازم2 = Υπάλληλος ('Daniel', 'meng', 'daniel@stanford.edu', 120000) υπάλληλος3 = Υπάλληλος ('Muriel', Κανένας, 'muriel@waterloo.edu', 140000) υπάλληλος4 = Υπάλληλος ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) ملازم5 = Υπάλληλος (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) εκτύπωση (Υπάλληλος [0]) εκτύπωση (υπάλληλος3) τμήμα1 = Σειρά (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ') 901234 ', όνομα =' DEV ')

Στη συνέχεια, θα δημιουργήσουμε μια παρουσία DepartmentWithEm Employees από τους υπαλλήλους και τα τμήματα

departmentWithEm Employees1 = Row (τμήμα = τμήμα1, εργαζόμενοι = [υπάλληλος1, υπάλληλος2, υπάλληλος5]) τμήμαWithEm Employees2 = Σειρά (τμήμα = τμήμα2, εργαζόμενοι = [υπάλληλος3, υπάλληλος4]) τμήμαWithEm Employees3 = Σειρά (τμήμα = τμήμα3, εργαζόμενοι = [υπάλληλος1, υπάλληλος4, υπάλληλος3 ]) departmentWithEm Employees4 = Row (τμήμα = τμήμα4, υπάλληλοι = [υπάλληλος2, υπάλληλος3])

Ας δημιουργήσουμε το πλαίσιο δεδομένων μας από τη λίστα των σειρών

departmentWithEm Employees_Seq = [departmentWithEm Employees1, departmentWithEm Employees2] dframe = spark.createDataFrame (departmentWithEm Employees_Seq) οθόνη (dframe) dframe.show ()

Pyspark Dataframes Παράδειγμα 1: Σύνολο δεδομένων Παγκόσμιου Κυπέλλου FIFA

Εδώ έχουμε πάρει το σύνολο δεδομένων Παικτών Παγκόσμιου Κυπέλλου της FIFA Θα φορτώσουμε αυτά τα δεδομένα που είναι σε μορφή CSVμέσα σεdataframe και στη συνέχεια θα μάθουμε για τους διαφορετικούς μετασχηματισμούς και ενέργειες που μπορούν να εκτελεστούν σε αυτό το πλαίσιο δεδομένων.

Ανάγνωση δεδομένων από αρχείο CSV

Ας φορτώσουμε τα δεδομένα από ένα αρχείο CSV. Εδώ πρόκειται να χρησιμοποιήσουμε το spark.read.csv μέθοδος φόρτωσης των δεδομένων σε ένα πλαίσιο δεδομένων fifa_df. Η πραγματική μέθοδος είναι spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, κεφαλίδα = True) fifa_df.show ()

Σχήμα πλαισίου δεδομένων

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

fifa_df.printSchema ()

Ονόματα και πλήθος στηλών (σειρές και στήλες)

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

fifa_df.columns // Ονόματα στηλών fifa_df.count () // Αριθμός σειρών len (fifa_df.columns) // Αριθμός στηλών

37784 8

Περιγράφοντας μια συγκεκριμένη στήλη

Αν θέλουμε να ρίξουμε μια ματιά στην περίληψη οποιασδήποτε συγκεκριμένης στήλης ενός Dataframe, χρησιμοποιούμε το περιγράφει μέθοδος. Αυτή η μέθοδος μας παρέχει τη στατιστική περίληψη της δεδομένης στήλης, εάν δεν προσδιορίζεται, παρέχει τη στατιστική περίληψη του πλαισίου δεδομένων.

java τι κάνει το append
fifa_df.describe ('Coach Name'). show () fifa_df.describe ('Θέση'). show ()

Επιλογή πολλαπλών στηλών

Εάν θέλουμε να επιλέξουμε συγκεκριμένες στήλες από το πλαίσιο δεδομένων, χρησιμοποιούμε το επιλέγω μέθοδος.

fifa_df.select ('Όνομα παίκτη', 'Όνομα προπονητή'). εμφάνιση ()

Επιλογή διακριτών πολλαπλών στηλών

fifa_df.select ('Όνομα παίκτη', 'Όνομα προπονητή'). διακριτό (). εμφάνιση ()

Φιλτράρισμα δεδομένων

Για να φιλτράρουμε τα δεδομένα, σύμφωνα με την καθορισμένη συνθήκη, χρησιμοποιούμε το φίλτρο εντολή. Εδώ φιλτράρουμε το πλαίσιο δεδομένων μας με βάση την προϋπόθεση ότι το Αναγνωριστικό αντιστοίχισης πρέπει να είναι ίσο με 1096 και στη συνέχεια υπολογίζουμε πόσες εγγραφές / σειρές υπάρχουν στη φιλτραρισμένη έξοδο.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // για να λάβετε τον αριθμό

Φιλτράρισμα δεδομένων (πολλαπλές παράμετροι)

Μπορούμε να φιλτράρουμε τα δεδομένα μας βάσει πολλαπλών συνθηκών (AND ή OR)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40')). εμφάνιση ()

Ταξινόμηση δεδομένων (OrderBy)

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

fifa_df.orderBy (fifa_df.MatchID). εμφάνιση ()

Παράδειγμα δεδομένων PySpark Παράδειγμα 2: Σύνολο δεδομένων Superheros

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

Εδώ θα φορτώσουμε τα δεδομένα με τον ίδιο τρόπο όπως κάναμε νωρίτερα.

Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Φιλτράρισμα των δεδομένων

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Αρσενικό Hero Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Γυναίκα Heros Count

Ομαδοποίηση των δεδομένων

GroupBy χρησιμοποιείται για την ομαδοποίηση του πλαισίου δεδομένων με βάση την καθορισμένη στήλη. Εδώ, ομαδοποιούμε το πλαίσιο δεδομένων με βάση τη στήλη Race και μετά με το μετρώ λειτουργία, μπορούμε να βρούμε το πλήθος του συγκεκριμένου αγώνα.

Race_df = Superhero_df.groupby ('Race') .count (). Εμφάνιση ()

Εκτέλεση ερωτημάτων SQL

Μπορούμε επίσης να μεταφέρουμε ερωτήματα SQL απευθείας σε οποιοδήποτε πλαίσιο δεδομένων, για αυτό πρέπει να δημιουργήσουμε έναν πίνακα από το πλαίσιο δεδομένων χρησιμοποιώντας το registerTempTable και στη συνέχεια χρησιμοποιήστε το sqlContext.sql () για να περάσει τα ερωτήματα SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Εμφάνιση ()

sqlContext.sql ('επιλέξτε ξεχωριστό (Eye_color) από superhero_table'). εμφάνιση ()

sqlContext.sql ('επιλέξτε ξεχωριστό (Eye_color) από superhero_table'). count ()

2. 3

sqlContext.sql ('select max (Weight) from superhero_table'). εμφάνιση ()

Και με αυτό, φτάνουμε στο τέλος αυτού του Οδηγού δεδομένων πλαισίου PySpark.

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

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