Βίντεο: Breaking the Habit of Smalltalk | Omid Scheybani | TEDxKish 2024
Το Hadoop είναι ένα πλούσιο και γρήγορα εξελισσόμενο οικοσύστημα με ένα αυξανόμενο σύνολο νέων εφαρμογών. Αντί να προσπαθήσουμε να συμβαδίσουμε με όλες τις απαιτήσεις για νέες δυνατότητες, το Pig έχει σχεδιαστεί ώστε να είναι επεκτάσιμο μέσω λειτουργιών που ορίζονται από το χρήστη , επίσης γνωστές ως UDF.
Τα UDF μπορούν να γραφτούν σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των Java, Python και JavaScript. Οι προγραμματιστές δημοσιεύουν επίσης και μοιράζονται μια αυξανόμενη συλλογή UDF online. (Αναζητήστε το Piggy Bank και το DataFu, για να αναφέρετε μόνο δύο παραδείγματα τέτοιων συλλογών στο διαδίκτυο.) Ορισμένα από τα UDF Pig που αποτελούν μέρος αυτών των αποθετηρίων είναι λειτουργίες LOAD / STORE (π.χ. XML), λειτουργίες ημερομηνίας, κείμενο, και στατιστικές λειτουργίες.
Τα pigs μπορούν επίσης να ενσωματωθούν σε ξένες γλώσσες όπως Java, Python και JavaScript, που σας επιτρέπουν να ενσωματώσετε το Pig με τις υπάρχουσες εφαρμογές σας. Βοηθά επίσης να ξεπεραστούν οι περιορισμοί στη γλώσσα των χοίρων. Ένας από τους συνηθέστερα αναφερόμενους περιορισμούς είναι ότι το Pig δεν υποστηρίζει τις δηλώσεις ροής ελέγχου: if / else, ενώ loop, για τις εντολές βρόχου και condition.
Το χοίρο υποστηρίζει τη ροή δεδομένων, αλλά πρέπει να ενσωματωθεί σε άλλη γλώσσα για να παρέχει ροή ελέγχου. Υπάρχουν συμφωνίες, ωστόσο, για την ενσωμάτωση του Χοιρινού σε μια γλώσσα ελέγχου ροής. Για παράδειγμα, αν μια εντολή Pig είναι ενσωματωμένη σε ένα βρόχο, κάθε φορά που ο βρόχος επαναλαμβάνει και εκτελεί την εντολή Pig, αυτό προκαλεί ξεχωριστή εργασία MapReduce για εκτέλεση.