Χειριστές στο Apache Pig: Μέρος 1- Σχετικοί χειριστές



Αυτή η ανάρτηση περιγράφει σχετικά με τους χειριστές στο Apache Pig. Ρίξτε μια ματιά σε αυτήν την ανάρτηση για χειριστές στο Apache Pig: Part 1 - Relational Operators.

Αυτή η ανάρτηση αφορά τους χειριστές του Apache Pig.Το Apache Pig σας επιτρέπει επίσης να γράφετε σύνθετους μετασχηματισμούς δεδομένων χωρίς τη γνώση της Java, καθιστώντας το πολύ σημαντικό για το .Ας ρίξουμε μια γρήγορη ματιά στο τι είναι το Pig and Pig Latin και οι διαφορετικοί τρόποι με τους οποίους μπορούν να λειτουργήσουν, προτού προχωρήσουμε στο Operators

Τι είναι το Apache Pig;

Το Apache Pig είναι μια διαδικαστική γλώσσα υψηλού επιπέδου για την αναζήτηση μεγάλων συνόλων δεδομένων χρησιμοποιώντας το Hadoop και το Map Reduce Platform. Είναι ένα πακέτο Java, όπου τα σενάρια μπορούν να εκτελεστούν από οποιαδήποτε εφαρμογή γλώσσας που εκτελείται στο JVM. Αυτό χρησιμοποιείται σε μεγάλο βαθμό σε επαναληπτικές διαδικασίες.





Το Apache Pig απλοποιεί τη χρήση του Hadoop επιτρέποντας ερωτήματα τύπου SQL σε ένα κατανεμημένο σύνολο δεδομένων και καθιστά δυνατή τη δημιουργία σύνθετων εργασιών για την επεξεργασία μεγάλων όγκων δεδομένων γρήγορα και αποτελεσματικά. Το καλύτερο χαρακτηριστικό του Pig είναι ότι υποστηρίζει πολλά σχεσιακά χαρακτηριστικά όπως Join, Group και Aggregate.

Γνωρίζω ότι ο χοίρος ακούγεται πολύ περισσότερο σαν ένα εργαλείο ETL και έχει πολλά κοινά χαρακτηριστικά με τα εργαλεία ETL. Αλλά το πλεονέκτημα του Pig over ETL εργαλεία είναι ότι μπορεί να τρέξει σε πολλούς διακομιστές ταυτόχρονα.



Τι είναι το Apache Pig Latin;

Το Apache Pig δημιουργεί μια απλούστερη διαδικαστική αφαίρεση γλώσσας πάνω από το Map Reduce για να εκθέσει μια πιο διεπαφή τύπου δομημένης γλώσσας ερωτήσεων (SQL) για εφαρμογές Hadoop που ονομάζεται Apache Pig Latin, οπότε αντί να γράψετε μια ξεχωριστή εφαρμογή Map Reduce, μπορείτε να γράψετε ένα σενάριο στο Apache Pig Latin που παραλληλίζεται αυτόματα και κατανέμεται σε ένα σύμπλεγμα. Με απλά λόγια, το Pig Latin, είναι μια ακολουθία απλών δηλώσεων που λαμβάνουν μια είσοδο και παράγουν μια έξοδο. Τα δεδομένα εισόδου και εξόδου αποτελούνται από σάκους, χάρτες, πλειάδες και βαθμίδες.

Λειτουργίες εκτέλεσης Apache Pig:

Το Apache Pig έχει δύο τρόπους εκτέλεσης:

  • Τοπική λειτουργία

Στην «Τοπική λειτουργία», τα δεδομένα προέλευσης θα λαμβάνονται από τον τοπικό κατάλογο του συστήματος του υπολογιστή σας. Η λειτουργία MapReduce μπορεί να καθοριστεί χρησιμοποιώντας την εντολή «pig –x local».



Χειριστές στο Apache Pig - 1

  • Λειτουργία MapReduce:

Για να εκτελέσετε το Pig σε λειτουργία MapReduce, χρειάζεστε πρόσβαση στο σύμπλεγμα Hadoop και στην εγκατάσταση HDFS. Η λειτουργία MapReduce μπορεί να καθοριστεί χρησιμοποιώντας την εντολή «χοίρος».

Χειριστές Apache Pig:

Το Apache Pig Operators είναι μια διαδικαστική γλώσσα υψηλού επιπέδου για την αναζήτηση μεγάλων συνόλων δεδομένων χρησιμοποιώντας το Hadoop και το Map Reduce Platform. Μια δήλωση Pig Latin είναι ένας τελεστής που παίρνει μια σχέση ως είσοδος και παράγει μια άλλη σχέση ως έξοδος. Αυτοί οι χειριστές είναι τα κύρια εργαλεία που παρέχει το Pig Latin για τη λειτουργία των δεδομένων. Σας επιτρέπουν να το μετατρέψετε ταξινομώντας, ομαδοποιώντας, ενώνοντας, προβάλλοντας και φιλτράροντας.

τι είναι το πλαίσιο σε Java

Ας δημιουργήσουμε δύο αρχεία για την εκτέλεση των εντολών:

Έχουμε δύο αρχεία με το όνομα «πρώτο» και «δεύτερο». Το πρώτο αρχείο περιέχει τρία πεδία: user, url & id.

Το δεύτερο αρχείο περιέχει δύο πεδία: url & rating. Αυτά τα δύο αρχεία είναι αρχεία CSV.

Οι χειριστές Apache Pig μπορούν να ταξινομηθούν ως: Σχεσιακός και διαγνωστικός.

Σχεσιακοί χειριστές:

Οι σχεσιακοί χειριστές είναι τα κύρια εργαλεία που παρέχει το Pig Latin για τη λειτουργία των δεδομένων. Σας επιτρέπει να μετατρέπετε τα δεδομένα ταξινομώντας, ομαδοποιώντας, ενώνοντας, προβάλλοντας και φιλτράροντας. Αυτή η ενότητα καλύπτει τους βασικούς σχεσιακούς τελεστές.

ΦΟΡΤΩΝΩ:

Ο χειριστής LOAD χρησιμοποιείται για τη φόρτωση δεδομένων από το σύστημα αρχείων ή την αποθήκευση HDFS σε σχέση Pig.

Σε αυτό το παράδειγμα, ο Φορέας φόρτωσης φορτώνει δεδομένα από το αρχείο «πρώτα» στη φόρμα σχέσης «φόρτωση1». Τα ονόματα των πεδίων είναι χρήστης, url, id.

ΓΙΑ ΚΑΘΕ:

Αυτός ο τελεστής δημιουργεί μετασχηματισμούς δεδομένων με βάση στήλες δεδομένων. Χρησιμοποιείται για την προσθήκη ή αφαίρεση πεδίων από μια σχέση. Χρησιμοποιήστε τη λειτουργία FOREACH-GENERATE για να εργαστείτε με στήλες δεδομένων.

Αποτέλεσμα FOREACH:

ΦΙΛΤΡΟ:

Αυτός ο τελεστής επιλέγει πλειάδες από μια σχέση που βασίζεται σε μια συνθήκη.

Σε αυτό το παράδειγμα, φιλτράρουμε την εγγραφή από το «φόρτωση1» όταν η συνθήκη «id» είναι μεγαλύτερη από 8.

Αποτέλεσμα ΦΙΛΤΡΟΥ:

ΣΥΜΜΕΤΟΧΗ:

Ο χειριστής JOIN χρησιμοποιείται για την εκτέλεση μιας εσωτερικής σύνδεσης ισοδυνάμου δύο ή περισσότερων σχέσεων με βάση κοινές τιμές πεδίου. Ο χειριστής JOIN εκτελεί πάντα μια εσωτερική ένωση. Οι εσωτερικές συνδέσεις αγνοούν τα μηδενικά κλειδιά, επομένως είναι λογικό να τα φιλτράρετε πριν από τη συμμετοχή.

Σε αυτό το παράδειγμα, εγγραφείτε στις δύο σχέσεις με βάση τη στήλη «url» από «φόρτωση1» και «φόρτωση2».

ΕΓΓΡΑΦΕΙΤΕ ΑΠΟΤΕΛΕΣΜΑ:

ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ:

Το Order By χρησιμοποιείται για την ταξινόμηση μιας σχέσης με βάση ένα ή περισσότερα πεδία. Μπορείτε να κάνετε ταξινόμηση με αύξουσα ή φθίνουσα σειρά χρησιμοποιώντας λέξεις-κλειδιά ASC και DESC.

Στο παρακάτω παράδειγμα, ταξινομούμε δεδομένα κατά φόρτωση2 σε αύξουσα σειρά στο πεδίο αξιολογήσεων.

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ ΑΠΟΤΕΛΕΣΜΑ :

ΔΙΑΚΡΙΤΗ:

Το Distinct αφαιρεί διπλές πλειάδες σε μια σχέση. Ας πάρουμε ένα αρχείο εισόδου όπως παρακάτω, το οποίο έχει amr, χάλια, 8 και amr, myblog, 10 δύο φορές στο αρχείο. Όταν εφαρμόζουμε διακριτά δεδομένα σε αυτό το αρχείο, καταργούνται διπλές καταχωρίσεις.

Αποτέλεσμα DISTINCT:

ΚΑΤΑΣΤΗΜΑ:

Το Store χρησιμοποιείται για την αποθήκευση αποτελεσμάτων στο σύστημα αρχείων.

Εδώ σώζουμε φόρτωση3 δεδομένα σε ένα αρχείο με το όνομα εναποθήκευση σε HDFS.

Αποτέλεσμα ΚΑΤΑΣΤΗΜΑΤΟΣ:

ΟΜΑΔΑ:

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

Σε αυτό το παράδειγμα, ομάδα ου

η σχέση «φόρτωση1» ανά url στήλης.

Αποτέλεσμα ΟΜΑΔΑΣ:

ΠΕΡΙΠΤΩΣΗ:

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

Σε αυτό το παράδειγμα ομαδοποιήστε το πεδίο «φόρτωση1» και «φόρτωση2» ανά διεύθυνση URL και στις δύο σχέσεις.

Αποτέλεσμα COGROUP:

ΣΤΑΥΡΟΣ:

Ο χειριστής CROSS χρησιμοποιείται για τον υπολογισμό του διασταυρούμενου προϊόντος (καρτεσιανό προϊόν) δύο ή περισσότερων σχέσεων.

Εφαρμογή πολλαπλού προϊόντος κατά τη φόρτωση1 και τη φόρτωση2.

τι είναι η μορφή στο python

Αποτέλεσμα CROSS:

ΟΡΙΟ:

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

ΑΠΟΤΕΛΕΣΜΑ ΑΠΟΤΕΛΕΣΜΑ:

ΔΙΑΙΡΕΣΗ:

Ο τελεστής SPLIT χρησιμοποιείται για να χωρίσει το περιεχόμενο μιας σχέσης σε δύο ή περισσότερες σχέσεις με βάση κάποια έκφραση. Ανάλογα με τις συνθήκες που αναφέρονται στην έκφραση.

Χωρίστε το loading2 σε δύο σχέσεις x και y. Η σχέση x που δημιουργήθηκε με φόρτωση2 περιέχει τα πεδία που η βαθμολογία είναι μεγαλύτερη από 8 και η σχέση y περιέχει πεδία που η βαθμολογία είναι μικρότερη ή ίση με 8.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.

Σχετικές αναρτήσεις:

Χειριστές στο Apache Pig - Διαγνωστικοί χειριστές

Βήματα για τη δημιουργία UDF στο Apache Pig