Οι συναρτήσεις έχουν δημιουργηθεί για έναν συγκεκριμένο σκοπό για την εκτέλεση λειτουργιών όπως Μαθηματικά, αριθμητικά, λογικά και σχεσιακά στους τελεστές των ονομάτων των πινάκων.
Ενσωματωμένες λειτουργίες
Αυτές είναι συναρτήσεις που είναι ήδη διαθέσιμες στο Hive. Πρώτον, πρέπει να ελέγξουμε την απαίτηση εφαρμογής και μετά μπορούμε να χρησιμοποιήσουμε αυτές τις ενσωματωμένες συναρτήσεις στις εφαρμογές μας. Μπορούμε να καλέσουμε αυτές τις λειτουργίες απευθείας στην εφαρμογή μας.
Η σύνταξη και οι τύποι αναφέρονται στην ακόλουθη ενότητα.
Τύποι ενσωματωμένων λειτουργιών στο HIVE
- Λειτουργίες συλλογής
- Συναρτήσεις ημερομηνίας
- Μαθηματικές συναρτήσεις
- Συνθήκες υπό όρους
- Λειτουργίες συμβολοσειράς
- Διάφορα Λειτουργίες
Λειτουργίες συλλογής:
Αυτές οι συναρτήσεις χρησιμοποιούνται για συλλογές. Συλλογές σημαίνει ότι η ομαδοποίηση στοιχείων και η επιστροφή ενός ή σειρά στοιχείων εξαρτάται από τον τύπο επιστροφής που αναφέρεται στο όνομα της συνάρτησης.
Τύπος επιστροφής | Όνομα συνάρτησης | Περιγραφή |
---|---|---|
ΙΝΤ | μέγεθος (Χάρτης | Θα ανακτήσει και θα δώσει τον αριθμό των στοιχείων στον τύπο χάρτη |
ΙΝΤ | μέγεθος (συστοιχία | Θα ανακτήσει και θα δώσει τον αριθμό στοιχείων στον τύπο πίνακα |
Σειρά | Πλήκτρα_ χάρτη (Χάρτης | Θα πάρει και δίνει έναν πίνακα που περιέχει τα πλήκτρα του χάρτη εισαγωγής. Εδώ ο πίνακας είναι χωρίς διάταξη |
Σειρά | Τιμές χάρτη (Χάρτης | Θα πάρει και δίνει έναν πίνακα που περιέχει τις τιμές του χάρτη εισαγωγής. Εδώ ο πίνακας είναι χωρίς διάταξη |
Σειρά | Ταξινόμηση_παρασκευή (Διάταξη | ταξινομεί τον πίνακα εισαγωγής με αύξουσα σειρά πίνακα και στοιχείων και τον επιστρέφει |
Λειτουργίες ημερομηνίας:
Αυτά χρησιμοποιούνται για την εκτέλεση χειρισμών ημερομηνίας και μετατροπής τύπων ημερομηνιών από έναν τύπο σε έναν άλλο τύπο:
Όνομα συνάρτησης | Τύπος επιστροφής | Περιγραφή |
---|---|---|
Unix_Timestamp () | BigInt | Θα λάβουμε την τρέχουσα χρονική σήμανση Unix σε δευτερόλεπτα |
To_date (χρονική σήμανση συμβολοσειράς) | σειρά | Θα ανακτήσει και θα δώσει μέρος της ημερομηνίας μιας συμβολοσειράς χρονικής σήμανσης: |
έτος (ημερομηνία συμβολοσειράς) | ΙΝΤ | Θα πάρει και θα δώσει το έτος μέρος μιας ημερομηνίας ή μιας συμβολοσειράς χρονικής σήμανσης |
τρίμηνο (ημερομηνία / χρονική σήμανση / συμβολοσειρά) | ΙΝΤ | Θα πάρει και θα δώσει το τέταρτο του έτους για μια ημερομηνία, χρονική σήμανση ή συμβολοσειρά στο εύρος 1 έως 4 |
μήνας (ημερομηνία συμβολοσειράς) | ΙΝΤ | Θα δώσει στο μήνα μέρος μιας ημερομηνίας ή μια συμβολοσειρά χρονικής σήμανσης |
ώρα (ημερομηνία συμβολοσειράς) | ΙΝΤ | Θα πάρει και δίνει την ώρα της χρονικής σήμανσης |
λεπτό (ημερομηνία συμβολοσειράς) | ΙΝΤ | Θα πάρει και δίνει το λεπτό της χρονικής σήμανσης |
Date_sub (ημερομηνία έναρξης συμβολοσειράς, ενδιάμεσες ημέρες) | σειρά | Θα πάρει και δίνει αφαίρεση του αριθμού των ημερών στην ημερομηνία έναρξης |
Σημερινή ημερομηνία | ημερομηνία | Θα ανακτήσει και θα δώσει την τρέχουσα ημερομηνία κατά την έναρξη της αξιολόγησης ερωτημάτων |
LAST _day (ημερομηνία συμβολοσειράς) | σειρά | Θα ανακτήσει και θα δώσει την τελευταία ημέρα του μήνα στον οποίο ανήκει η ημερομηνία |
trunc (ημερομηνία συμβολοσειράς, μορφή συμβολοσειράς) | σειρά | Θα πάρει και δίνει ημερομηνία περικομμένη στη μονάδα που καθορίζεται από τη μορφή. Υποστηριζόμενες μορφές σε αυτό: MONTH / MON / MM, YEAR / YYYY / YY. |
Μαθηματικές συναρτήσεις :
Αυτές οι συναρτήσεις χρησιμοποιούνται για μαθηματικές λειτουργίες. Αντί να δημιουργούμεUDF, έχουμε μερικές ενσωματωμένες μαθηματικές συναρτήσεις στο Hive.
Όνομα συνάρτησης | Τύπος επιστροφής | Περιγραφή |
---|---|---|
στρογγυλό (ΔΙΠΛΟ X) | ΔΙΠΛΟ | Θα ανακτήσει και θα επιστρέψει την στρογγυλεμένη BIGINT τιμή του X |
στρογγυλό (ΔΙΠΛΟ X, INT δ) | ΔΙΠΛΟ | Θα ανακτήσει και θα επιστρέψει το X στρογγυλεμένο σε d δεκαδικά ψηφία |
bround (ΔΙΠΛΟ X) | ΔΙΠΛΟ | Θα ανακτήσει και θα επιστρέψει την στρογγυλεμένη τιμή BIGINT του X χρησιμοποιώντας τη λειτουργία στρογγυλοποίησης HALF_EVEN |
όροφος (ΔΙΠΛΟ Χ) | ΜΕΓΑΛΟ | Θα ανακτήσει και θα επιστρέψει τη μέγιστη τιμή BIGINT που είναι ίση ή μικρότερη από την τιμή X |
οροφή (ΔΙΠΛΟ α), οροφή (ΔΙΠΛΟ α) | ΜΕΓΑΛΟ | Θα ανακτήσει και θα επιστρέψει την ελάχιστη τιμή BIGINT που είναι ίση ή μεγαλύτερη από την τιμή X |
rand (), rand (INT σπόρος) | ΔΙΠΛΟ | Θα ανακτήσει και θα επιστρέψει έναν τυχαίο αριθμό που κατανέμεται ομοιόμορφα από 0 έως 1 |
Υπό όρους Λειτουργίες:
Αυτές οι συναρτήσεις χρησιμοποιούνται για ελέγχους υπό όρους.
Όνομα συνάρτησης | Τύπος επιστροφής | Περιγραφή |
---|---|---|
εάν (Boolean testCondition, T valueTrue, T valueFalseOrNull) | Τ | Θα ανακτήσει και θα δώσει τιμή Αληθής όταν η Συνθήκη δοκιμής είναι αληθής, δίνει τιμή Λάθος ή Μηδενική. |
ISNULL (X) | Boolean | Θα ανακτήσει και θα δώσει αλήθεια εάν το X είναι NULL και ψευδώς διαφορετικά. |
ΠΡΟΣΟΧΗ (X) | Boolean | Θα ανακτήσει και θα δώσει αλήθεια εάν το X δεν είναι NULL και ψευδώς διαφορετικά. |
Λειτουργίες χορδών:
Χειρισμοί συμβολοσειράς και λειτουργίες συμβολοσειρών μπορούν να κληθούν αυτές οι λειτουργίες.
Όνομα συνάρτησης | Τύπος επιστροφής | Περιγραφή |
---|---|---|
αντίστροφη (συμβολοσειρά X) | σειρά | Θα δώσει την αντίστροφη συμβολοσειρά του Χ |
rpad (string string, int μήκος, string pad) | σειρά | Θα φέρω και θα δώσει str, το οποίο είναι σωστά γεμισμένο με μαξιλάρι σε μήκος (ακέραια τιμή) |
rtrim (συμβολοσειρά X) | σειρά | Θα ανακτήσει και θα επιστρέψει τη συμβολοσειρά που προκύπτει από κενά διαστήματα από το τέλος (δεξιά πλευρά) του X Για παράδειγμα , το rtrim ('αποτελέσματα') οδηγεί σε 'αποτελέσματα' |
διάστημα (INT n) | σειρά | Θα πάρει και δίνει μια σειρά από n κενά διαστήματα. |
διαχωρισμός (STRING str, STRING pat) | πίνακας | Διαχωρίζεται γύρω από το pat (το pat είναι μια κανονική έκφραση). |
Str_to_map (κείμενο [, οριοθέτης1, οριοθέτης2]) | χάρτης | Θα χωρίσει το κείμενο σε ζεύγη κλειδιών-τιμών χρησιμοποιώντας δύο οριοθέτες. |
UDFs (Λειτουργίες καθορισμένες από το χρήστη):
Στην ομάδα, οι χρήστες μπορούν να ορίσουν τις δικές τους λειτουργίες για να ικανοποιήσουν συγκεκριμένες απαιτήσεις του πελάτη. Αυτά είναι γνωστά ως UDFs στην Κυψέλη. Λειτουργίες που καθορίζονται από το χρήστη γραμμένες σε Java για συγκεκριμένες ενότητες
Ορισμένα από τα UDF έχουν σχεδιαστεί ειδικά για την επαναχρησιμοποίηση του κώδικα στα πλαίσια εφαρμογών. Ο προγραμματιστής θα αναπτύξει αυτές τις λειτουργίες στην Java και θα ενσωματώσει αυτά τα UDF με την κυψέλη.
Κατά την εκτέλεση του ερωτήματος, ο προγραμματιστής μπορεί να χρησιμοποιήσει απευθείας τον κώδικα και τα UDF θα επιστρέψουν τις εξόδους σύμφωνα με τις εργασίες που ορίζει ο χρήστης. Θα παρέχει υψηλή απόδοση όσον αφορά την κωδικοποίηση και την εκτέλεση.
Για παράδειγμα, για το string stemming δεν έχουμε καμία προκαθορισμένη λειτουργία στο Hive, για αυτό μπορούμε να γράψουμε stem UDF στην Java. Όπου χρειαζόμαστε τη λειτουργία Stem, μπορούμε να καλέσουμε απευθείας αυτό το Stem UDF στο Hive.
Εδώ η λειτουργικότητα του στελέχους σημαίνει την εξαγωγή λέξεων από τις ρίζες της. Είναι σαν ο αλγόριθμος που μειώνει τις λέξεις «επιθυμία», «επιθυμία» και «επιθυμίες» στη ρίζα λέξη «επιθυμία» Για την εκτέλεση αυτής της λειτουργικότητας τύπου, μπορούμε να γράψουμε UDF σε java και να ενσωματωθούμε στο Hive.
Ανάλογα με τις περιπτώσεις χρήσης που μπορούν να γραφτούν τα UDF, θα δέχεται και θα παράγει διαφορετικούς αριθμούς τιμών εισόδου και εξόδου.
Ο γενικός τύπος UDF θα δεχτεί μία τιμή εισόδου και θα παράγει μία τιμή εξόδου. Εάν το UDF χρησιμοποιείται στο ερώτημα, τότε το UDF θα κληθεί μία φορά για κάθε σειρά στο σύνολο δεδομένων αποτελεσμάτων.
Με τον άλλο τρόπο, μπορεί να δεχτεί μια ομάδα τιμών ως τιμή εισόδου και επιστροφής μεμονωμένης εξόδου.