Συναρτήσεις Hive: Ενσωματωμένες & Παράδειγμα UDF (Ορισμός από τον χρήστη)

⚡ Έξυπνη Σύνοψη

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

  • 📚 Έξι ενσωματωμένες οικογένειες: Οι συναρτήσεις συλλογής, ημερομηνίας, μαθηματικών, υπό όρους, συμβολοσειρών και διάφορες άλλες συναρτήσεις μπορούν να κληθούν απευθείας μέσα στο HiveQL.
  • 🧾 Οι υπογραφές έχουν σημασία: Κάθε συνάρτηση έχει μια σταθερή λίστα ορισμάτων και έναν τεκμηριωμένο τύπο επιστροφής, επομένως ο τύπος επιστροφής αποφασίζει πού μπορεί να χρησιμοποιηθεί.
  • 🧩 Το UDF καλύπτει τα κενά: Όταν δεν υπάρχει ενσωματωμένη λειτουργία, ένα Java Η κλάση που επεκτείνει org.apache.hadoop.hive.ql.exec.UDF παρέχει την λειτουργία που λείπει.
  • 🔢 Τρία σχήματα προσαρμοσμένης λειτουργίας: Το UDF επιστρέφει μία γραμμή ανά γραμμή, το UDAF συμπτύσσει πολλές γραμμές σε μία και το UDTF επεκτείνει μία γραμμή σε πολλές.
  • Εγγραφή σε δύο βήματα: Η συνάρτηση ADD JAR τοποθετεί τον κώδικα στη διαδρομή κλάσης και η συνάρτηση CREATE TEMPORARY FUNCTION συνδέει ένα όνομα με την κλάση.
  • ♻️ Η επαναχρησιμοποίηση είναι το ζητούμενο: Ένα δοκιμασμένο UDF, όπως ένα stemmer, μπορεί να κληθεί από κάθε ερώτημα αντί να ξαναγράφεται κάθε φορά.

Συναρτήσεις Hive: Ενσωματωμένες και οριζόμενες από τον χρήστη συναρτήσεις

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

Ενσωματωμένες Λειτουργίες

Αυτές είναι λειτουργίες που είναι ήδη διαθέσιμες στο Hive. Πρώτα, πρέπει να ελέγξουμε την απαίτηση εφαρμογής και, στη συνέχεια, μπορούμε να χρησιμοποιήσουμε αυτές τις ενσωματωμένες λειτουργίες στις εφαρμογές μας. Μπορούμε να καλέσουμε αυτές τις λειτουργίες απευθείας στην εφαρμογή μας.

Η σύνταξη και οι τύποι αναφέρονται στην παρακάτω ενότητα.

Τύποι ενσωματωμένων συναρτήσεων στο Hive:

  • Λειτουργίες συλλογής
  • Λειτουργίες ημερομηνίας
  • Μαθηματικές Συναρτήσεις
  • Συναρτήσεις υπό όρους
  • Λειτουργίες συμβολοσειράς
  • Διάφορα. Λειτουργίες

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

Λειτουργίες συλλογής

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

Τύπος επιστροφής Όνομα συνάρτησης Περιγραφή
INT μέγεθος (Χάρτης ) Θα ανακτήσει και θα δώσει τον αριθμό των στοιχείων στον τύπο χάρτη
INT μέγεθος (Πίνακας ) Θα ανακτήσει και θα δώσει τον αριθμό των στοιχείων στον τύπο πίνακα
Πίνακας map_keys(Χάρτης ) Θα ανακτήσει και θα δώσει έναν πίνακα που περιέχει τα κλειδιά του χάρτη εισόδου. Ο πίνακας δεν είναι ταξινομημένος.
Πίνακας map_values(Χάρτης ) Θα ανακτήσει και θα δώσει έναν πίνακα που περιέχει τις τιμές του χάρτη εισόδου. Ο πίνακας δεν είναι ταξινομημένος.
Παράταξη ταξινόμηση_πίνακα(Πίνακας ) Ταξινομεί τον πίνακα εισόδου κατά αύξουσα σειρά των στοιχείων του και τον επιστρέφει
Boolean πίνακας_περιέχει(Πίνακας , αξία) Επιστρέφει TRUE εάν ο πίνακας περιέχει την τιμή που διαβιβάστηκε ως δεύτερο όρισμα

Λειτουργίες ημερομηνίας

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

Όνομα συνάρτησης Τύπος επιστροφής Περιγραφή
unix_timestamp() BigInt Θα πάρουμε το ρεύμα Unix χρονική σήμανση σε δευτερόλεπτα. Η τιμή δεν είναι σταθερή για ολόκληρο το ερώτημα
to_date(χρονική σήμανση συμβολοσειράς) Ραντεβού Θα ανακτήσει και θα δώσει την ημερομηνία ως μέρος μιας συμβολοσειράς χρονικής σήμανσης
έτος (ημερομηνία συμβολοσειράς) INT Θα ανακτήσει και θα δώσει στο έτος μέρος μιας ημερομηνίας ή μιας συμβολοσειράς χρονικής σφραγίδας
τρίμηνο (ημερομηνία/χρονοσήμανση/συμβολοσειρά) INT Θα ανακτήσει και θα δώσει το τρίμηνο του έτους για μια ημερομηνία, χρονική σήμανση ή συμβολοσειρά στο εύρος 1 έως 4
μήνας (ημερομηνία συμβολοσειράς) INT Θα δώσει στον μήνα μέρος μιας ημερομηνίας ή μιας συμβολοσειράς χρονικής σήμανσης
ώρα (ημερομηνία συμβολοσειράς) INT Θα ανακτήσει και θα δώσει την ώρα της χρονικής σήμανσης
λεπτό (ημερομηνία συμβολοσειράς) INT Θα ανακτήσει και θα δώσει το λεπτό της χρονικής σήμανσης
date_sub(συμβολοσειρά ημερομηνία έναρξης, ακέραιος αριθμός ημερών) Ραντεβού Θα ανακτήσει και θα δώσει το αποτέλεσμα του subtracμεσολαβούν αρκετές ημέρες από την ημερομηνία έναρξης
τρέχουσα_ημερομηνία Ραντεβού Θα ανακτήσει και θα δώσει την τρέχουσα ημερομηνία στην αρχή της αξιολόγησης του ερωτήματος
last_day(ημερομηνία συμβολοσειράς) κορδόνι Θα ανακτήσει και θα δώσει την τελευταία ημέρα του μήνα στον οποίο ανήκει η ημερομηνία
trunc (ημερομηνία συμβολοσειράς, μορφή συμβολοσειράς) κορδόνι Θα ανακτήσει και θα δώσει την ημερομηνία περικομμένη στη μονάδα που καθορίζεται από τη μορφή. Υποστηριζόμενες μορφές: ΜΗΝΑΣ/ΜΗΝΑ/ΜΜ, ΕΤΟΣ/ΕΕΕΕ/ΕΕ.

Μαθηματικές Συναρτήσεις

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

Όνομα συνάρτησης Τύπος επιστροφής Περιγραφή
γύρος (DOUBLE X) ΔΙΠΛΌ Θα ανακτήσει και θα επιστρέψει την στρογγυλοποιημένη τιμή BIGINT του X
γύρος (DOUBLE X, INT d) ΔΙΠΛΌ Θα ανακτήσει και θα επιστρέψει το X στρογγυλοποιημένο σε d δεκαδικά ψηφία
καφέ (DOUBLE X) ΔΙΠΛΌ Θα ανακτήσει και θα επιστρέψει την στρογγυλοποιημένη τιμή BIGINT του X χρησιμοποιώντας τη λειτουργία στρογγυλοποίησης HALF_EVEN, γνωστή και ως στρογγυλοποίηση τραπεζιτών.
όροφος (ΔΙΠΛΟ X) ΜΕΓΑΛΗ Θα ανακτήσει και θα επιστρέψει τη μέγιστη τιμή BIGINT που είναι ίση ή μικρότερη από την τιμή X.
οροφή (ΔΙΠΛΟ α), οροφή (ΔΙΠΛΟ α) ΜΕΓΑΛΗ Θα ανακτήσει και θα επιστρέψει την ελάχιστη τιμή BIGINT που είναι ίση ή μεγαλύτερη από την τιμή a
rand(), rand(INT seed) ΔΙΠΛΌ Θα ανακτήσει και θα επιστρέψει έναν τυχαίο αριθμό που κατανέμεται ομοιόμορφα από το 0 έως το 1. Η παροχή ενός seed κάνει την ακολουθία επαναλήψιμη.

Συναρτήσεις υπό όρους

Αυτές οι συναρτήσεις χρησιμοποιούνται για ελέγχους τιμών υπό όρους.

Όνομα συνάρτησης Τύπος επιστροφής Περιγραφή
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Θα δώσει valueTrue όταν η testCondition είναι true και valueFalseOrNull διαφορετικά.
isnull(X) Boolean Θα ανακτήσει και θα δώσει true αν το X είναι NULL και false διαφορετικά.
δεν είναι null(X) Boolean Θα ανακτήσει και θα δώσει true αν το X δεν είναι NULL και false διαφορετικά.
nvl(τιμή T, προεπιλεγμένη_τιμή T) T Θα δώσει default_value όταν η τιμή είναι NULL και value διαφορετικά.

Λειτουργίες συμβολοσειράς

Οι χειρισμοί και οι λειτουργίες συμβολοσειρών διεκπεραιώνονται από τις ακόλουθες συναρτήσεις.

Όνομα συνάρτησης Τύπος επιστροφής Περιγραφή
αντίστροφη(συμβολοσειρά X) κορδόνι Θα δώσει την αντίστροφη συμβολοσειρά του X
rpad (string str, int μήκος, string pad) κορδόνι Θα ανακτήσει και θα δώσει str με δεξιά συμπλήρωση και pad σε συνολικό μήκος μήκους
rtrim(συμβολοσειρά X) κορδόνι Θα ανακτήσει και θα επιστρέψει τη συμβολοσειρά που προκύπτει από την περικοπή κενών από το τέλος (δεξιά πλευρά) του X.
Για παράδειγμα, το rtrim(' results ') καταλήγει σε ' results'
διάστημα (INT n) κορδόνι Θα ανακτήσει και θα δώσει μια συμβολοσειρά από n κενά.
split (STRING str, STRING pat) παράταξη Διαχωρίζει το str γύρω από το pat (το pat είναι μια κανονική έκφραση).
str_to_map(κείμενο[, οριοθέτης1, οριοθέτης2]) χάρτης Θα χωρίσει το κείμενο σε ζεύγη κλειδιού-τιμής χρησιμοποιώντας δύο οριοθέτες. Ο Delimiter1 διαχωρίζει τα ζεύγη και ο delimiter2 διαχωρίζει κάθε ζεύγος.

Διάφορα. Λειτουργίες

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

Όνομα συνάρτησης Τύπος επιστροφής Περιγραφή
κατακερματισμός (a1[, a2…]) INT Επιστρέφει μια τιμή κατακερματισμού των ορισμάτων
τρέχων_χρήστης() κορδόνι Επιστρέφει το τρέχον όνομα χρήστη από τον διαμορφωμένο διαχειριστή ελέγχου ταυτότητας
τρέχουσα_βάση_δεδομένων() κορδόνι Επιστρέφει το όνομα της τρέχουσας βάσης δεδομένων
md5(συμβολοσειρά/δυαδικό) κορδόνι Επιστρέφει το άθροισμα ελέγχου MD5 128-bit ως συμβολοσειρά 32 δεκαεξαδικών ψηφίων ή NULL για όρισμα NULL.
sha1(συμβολοσειρά/δυαδικό) κορδόνι Επιστρέφει το SHA-1 digest του ορίσματος ως δεκαεξαδική συμβολοσειρά
crc32(συμβολοσειρά/δυαδικό) BigInt Επιστρέφει την τιμή ελέγχου κυκλικού πλεονασμού μιας συμβολοσειράς ή ενός δυαδικού ορίσματος
εκδοχή() κορδόνι Επιστρέφει την έκδοση Hive ως αριθμό έκδοσης ακολουθούμενο από ένα hash έκδοσης
αντανακλά(κλάση, μέθοδος[, arg1…]) ποικίλλει Καλεί ένα Java μέθοδος αντιστοιχίζοντας την υπογραφή ορίσματος, χρησιμοποιώντας αντανάκλαση. Η java_method() είναι συνώνυμη

UDF (Συναρτήσεις που καθορίζονται από το χρήστη)

Στο Hive, οι χρήστες μπορούν να ορίσουν τις δικές τους συναρτήσεις για να καλύψουν ορισμένες απαιτήσεις του πελάτη. Αυτές είναι γνωστές ως UDF στο Hive. Οι συναρτήσεις που ορίζονται από τον χρήστη γράφονται σε Java για συγκεκριμένες ενότητες.

Ορισμένα UDF έχουν σχεδιαστεί ειδικά για την επαναχρησιμοποίηση κώδικα σε πλαίσια εφαρμογών. Ο προγραμματιστής γράφει αυτές τις συναρτήσεις σε Java και ενσωματώνει αυτά τα UDF με το Hive.

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

Για παράδειγμα, για την δημιουργία συμβολοσειρών δεν έχουμε κάποια προκαθορισμένη συνάρτηση στο Hive. Για αυτό, μπορούμε να γράψουμε ένα UDF stem σε JavaΌπου χρειαζόμαστε λειτουργικότητα στελέχους, μπορούμε να ονομάσουμε απευθείας αυτό το στέλεχος UDF στο Hive.

Εδώ, η λειτουργικότητα του stem σημαίνει την εξαγωγή λέξεων από τις ρίζες τους. Ένας αλγόριθμος stemming ανάγει τις λέξεις "wishing", "wished" και "wishes" στη ρίζα "wish". Για την εκτέλεση αυτού του τύπου λειτουργικότητας, μπορούμε να γράψουμε ένα UDF σε Java και ενσωματώστε το με Κυψέλη.

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

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

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

UDF εναντίον UDAF εναντίον UDTF στο Hive

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

Χαρακτηριστικά Γραμμές μέσα → γραμμές έξω Κλάση προς επέκταση Ενσωματωμένα παραδείγματα
UDF Μία σειρά → μία σειρά org.apache.hadoop.hive.ql.exec.UDF μήκος(), στρογγυλό(), αντίστροφο()
UDAF Πολλές σειρές → μία σειρά org.apache.hadoop.hive.ql.udf.generic.AbstractGenericUDAFResolver count(), min(), max()
UDTF Μία σειρά → πολλές σειρές org.apache.hadoop.hive.ql.udf.generic.GenericUDTF εκρήγνυται(), json_tuple(), parse_url_tuple()

Δύο πρακτικοί κανόνες προκύπτουν από τον πίνακα:

  • Ένα UDAF σχεδόν πάντα συνδυάζεται με μια ρήτρα GROUP BY, επειδή συμπτύσσει κάθε ομάδα σε μία γραμμή.
  • Ένα UDTF δεν μπορεί να επιλεγεί παράλληλα με άλλες στήλες στην ίδια λίστα SELECT, επομένως χρησιμοποιείται συνήθως με μια ΠΛΑΓΙΑ ΠΡΟΒΟΛΗ.

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

Πώς να γράψετε και να καταχωρήσετε ένα UDF στο Hive

Το παράδειγμα του κορμού που περιγράφεται παραπάνω μπορεί να κατασκευαστεί ως πραγματική συνάρτηση σε τέσσερα βήματα. Τίποτα πέρα ​​από ένα Java Απαιτείται μεταγλωττιστής και μια εκτελούμενη συνεδρία Hive.

Βήμα 1) Γράψε ένα Java Κλάση που επεκτείνει το UDF και υλοποιεί μια μέθοδο public evaluate(). Η Hive καλεί την evaluate() μία φορά ανά γραμμή, επομένως η μέθοδος πρέπει να χειρίζεται μια NULL είσοδο.

package com.guru99.hive.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public final class Stem extends UDF {

    public Text evaluate(final Text input) {
        if (input == null) {
            return null;
        }
        String word = input.toString().toLowerCase();
        if (word.endsWith("ing")) {
            word = word.substring(0, word.length() - 3);
        } else if (word.endsWith("ed") || word.endsWith("es")) {
            word = word.substring(0, word.length() - 2);
        }
        return new Text(word);
    }
}

Βήμα 2) Μεταγλωττίστε την κλάση και συσκευάστε την σε ένα αρχείο JAR, για παράδειγμα hive-udf-1.0.jar, μαζί με τυχόν κλάσεις από τις οποίες εξαρτάται.

Βήμα 3) Τοποθετήστε το JAR στη διαδρομή κλάσης Hive και συνδέστε ένα όνομα συνάρτησης στην κλάση. Μια προσωρινή συνάρτηση υπάρχει μόνο για την τρέχουσα συνεδρία.

ADD JAR /home/hduser/hive-udf-1.0.jar;

CREATE TEMPORARY FUNCTION stem AS 'com.guru99.hive.udf.Stem';

Βήμα 4) Καλέστε τη νέα συνάρτηση ακριβώς όπως μια ενσωματωμένη. Εφαρμόζοντας στις λέξεις "wishing", "wished" και "wishes", αυτή η κλάση επιστρέφει "wish" και για τις τρεις.

SELECT word, stem(word) FROM words;

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

CREATE FUNCTION default.stem AS 'com.guru99.hive.udf.Stem'
USING JAR '/user/hive/udfs/hive-udf-1.0.jar';

Μία κλάση μπορεί να δηλώσει περισσότερες από μία μεθόδους evaluate(). Η Hive αντιστοιχίζει την κλήση με τις υπογραφές ορισμάτων, και έτσι μια συνάρτηση μπορεί να δεχτεί τόσο μια συμβολοσειρά όσο και έναν ακέραιο αριθμό.

Συχνές Ερωτήσεις

Η SHOW FUNCTIONS παραθέτει κάθε καταχωρημένο όνομα, συμπεριλαμβανομένων των προσαρμοσμένων. Η DESCRIBE FUNCTION name εκτυπώνει μια υπογραφή μίας γραμμής και η DESCRIBE FUNCTION EXTENDED name προσθέτει παραδείγματα χρήσης όπου τα παρέχει η κλάση υλοποίησης.

Σχεδόν πάντα υπάρχει πρόβλημα ονόματος ή εμβέλειας: η συμβολοσειρά μετά το AS πρέπει να είναι το πλήρως προσδιορισμένο όνομα κλάσης και η συνάρτηση ADD JAR ισχύει μόνο για την περίοδο λειτουργίας που την εκτέλεσε. Η επανασύνδεση διαγράφει τόσο το JAR όσο και οποιαδήποτε προσωρινή συνάρτηση.

Χρησιμοποιήστε το GenericUDF όταν η συνάρτηση δέχεται σύνθετους τύπους όπως πίνακες, χάρτες ή δομές, έναν μεταβλητό αριθμό ορισμάτων ή χρειάζεται να επικυρώσει η ίδια τους τύπους ορισμάτων. Η απλή κλάση UDF επιλύει τύπους μέσω αντανάκλασης και χειρίζεται μόνο πρωτόγονα Writables.

Ένα πραγματικό UDF πρέπει να εκτελείται στην JVM. Για άλλες γλώσσες, Κυψέλη προσφέρει την ρήτρα TRANSFORM, η οποία μεταδίδει κάθε γραμμή μέσω ενός εξωτερικού σεναρίου όπως το Python σε σχέση με την τυπική είσοδο και έξοδο. Είναι πιο αργό αλλά αποφεύγει Java εξ ολοκλήρου.

Μπορούν η evaluate() να εκτελεστεί μία φορά ανά γραμμή, επομένως η ακριβή λογική πολλαπλασιάζεται με τον αριθμό των γραμμών και η κατανομή αντικειμένων μέσα στη μέθοδο προσθέτει πίεση στη συλλογή απορριμμάτων. Προτιμήστε μια ενσωματωμένη συνάρτηση όταν υπάρχει και διατηρήστε την evaluate() απαλλαγμένη από εισόδους/εξόδους.

Όχι. Τα ονόματα συναρτήσεων δεν διακρίνουν πεζά-κεφαλαία, επομένως οι ROUND(), Round() και round() είναι η ίδια συνάρτηση. Java Το όνομα της κλάσης στην ρήτρα AS είναι διαφορετικό ζήτημα και πρέπει να ταιριάζει ακριβώς με την μεταγλωττισμένη κλάση, συμπεριλαμβανομένου του πακέτου της.

Οι βοηθοί μηχανικής μάθησης αντιστοιχίζουν μια περιγραφή απλής γλώσσας σε υποψήφιες υπογραφές και προειδοποιούν όταν ένας τύπος επιστροφής δεν ταιριάζει στη στήλη-στόχο. Επαληθεύστε την πρόταση σε σχέση με την τεκμηριωμένη υπογραφή, επειδή τα δημιουργημένα ονόματα μερικές φορές ανήκουν σε άλλη διάλεκτο SQL.

Παράγει έναν χρησιμοποιήσιμο σκελετό — τη δήλωση κλάσης, τις εισαγωγές και μια μέθοδο evaluate() — από ένα σχόλιο που περιγράφει τη λειτουργία. Ο χειρισμός των null, οι εγγράψιμοι τύποι και το βήμα συσκευασίας χρειάζονται ακόμη αναθεώρηση και η συνάρτηση πρέπει να δοκιμαστεί σε πραγματικές γραμμές.

Συνοψίστε αυτήν την ανάρτηση με: