Προγραμματισμός χοίρων: Apache Pig Script με UDF σε λειτουργία HDFS



Προγραμματισμός χοίρων: Apache Pig Script με UDF σε λειτουργία HDFS. Ακολουθεί μια ανάρτηση ιστολογίου για την εκτέλεση του σεναρίου Apache Pig με UDF σε λειτουργία HDFS ...

Στις προηγούμενες αναρτήσεις ιστολογίου είδαμε πώς να ξεκινήσουμε Προγραμματισμός χοίρων και δέσμες ενεργειών . Έχουμε δει τα βήματα για να γράψουμε ένα Pig Script σε λειτουργία HDFS και χωρίς UDF. Στο τρίτο μέρος αυτής της σειράς θα εξετάσουμε τα βήματα για τη σύνταξη ενός σεναρίου χοίρου UDF σε λειτουργία HDFS .

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





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

Το σύνολο δεδομένων απεικονίζεται παρακάτω το οποίο θα χρησιμοποιήσουμε σε αυτό το παράδειγμα:



table

Στόχος μας είναι να δημιουργήσουμε το γράμμα της 1ης στήλης με κεφαλαία γράμματα και να αυξήσουμε τη δύναμη της 2ης στήλης με την τιμή της 3ης στήλης.

Ας ξεκινήσουμε με τη σύνταξη του κώδικα java για κάθε UDF. Επίσης, πρέπει να διαμορφώσουμε 4 JAR στο έργο java μας για να αποφύγουμε τα σφάλματα συλλογής.
Πρώτον, θα δημιουργήσουμε προγράμματα java, και τα δύο δίνονται παρακάτω:



Upper.java

Εισαγωγή java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('deprecation') δημόσια τάξη Το Upper επεκτείνει το EvalFunc {public String exec (Tuple input) ρίχνει το IOException {if (input == null || input.size () == 0) return null δοκιμάστε το {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Εξαίρεση e) {throw WrappedIOException.wrap ('Caught εξαίρεση επεξεργασία γραμμής εισόδου', ε)}}}

Power.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.Pig.PigWarning import org.apache.pig.data. Τριπλή δημόσια κλάση Pow επεκτείνει το EvalFunc {public Long exec (Tuple input) ρίχνει το IOException {δοκιμάστε { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long hasil = 1 / * Μάλλον δεν είναι η πιο αποτελεσματική μέθοδος ... * / για (αποτέλεσμα int i = 0 i) {// Υπερχείλιση. Δώστε μια προειδοποίηση, αλλά μην ρίξετε μια // εξαίρεση. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Η επιστροφή null θα δείξει στο Pig ότι αποτύχαμε, αλλά // θέλουμε να συνεχίσουμε την εκτέλεση. return null}} return result} catch (Εξαίρεση e) {// Η ρίψη εξαίρεσης θα προκαλέσει την αποτυχία της εργασίας ρίξτε νέο IOException ('Κάτι κακό συνέβη!', ε)}}}

Για να αφαιρέσουμε τα σφάλματα συλλογής, πρέπει να διαμορφώσουμε 4 βάζα στο έργο μας java.


Κάντε κλικ στο κουμπί Λήψη για λήψη των JAR

συγχώνευση κωδικού ταξινόμησης c ++

[buttonleads form_title = 'Λήψη κώδικα' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'Λήψη JARs']

Τώρα, εξάγουμε αρχεία JAR και για τους δύο κώδικες java. Ελέγξτε τα παρακάτω βήματα για τη δημιουργία JAR.

Εδώ, έχουμε δείξει για ένα πρόγραμμα, προχωρήσουμε με τον ίδιο τρόπο και στο επόμενο πρόγραμμα.

Μετά τη δημιουργία των αρχείων JAR και κειμένου, μετακινήσαμε όλα τα δεδομένα στο σύμπλεγμα HDFS, το οποίο απεικονίζεται από τις ακόλουθες εικόνες:

Στο σύνολο δεδομένων μας, τα πεδία διαχωρίζονται με κόμμα (,).

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

Τώρα στο τερματικό, πληκτρολογήστε PIG ακολουθούμενο από το όνομα του αρχείου σεναρίου που εμφανίζεται στην ακόλουθη εικόνα:

Εδώ, αυτό είναι το αποτέλεσμα για την εκτέλεση του σεναρίου χοίρου.

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

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

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

Εισαγωγή στην Apache Hive