Funktionen werden für einen bestimmten Zweck erstellt, um Operationen wie mathematisch, arithmetisch, logisch und relational für die Operanden von Tabellenspaltennamen auszuführen.
Eingebaute Funktionen
Dies sind Funktionen, die bereits in Hive verfügbar sind. Zuerst müssen wir die Anwendungsanforderungen überprüfen, und dann können wir diese integrierten Funktionen in unseren Anwendungen verwenden. Wir können diese Funktionen direkt in unserer Anwendung aufrufen.
Die Syntax und Typen werden im folgenden Abschnitt erwähnt.
Arten von integrierten Funktionen in HIVE
- Sammlungsfunktionen
- Datumsfunktionen
- Mathematische Funktionen
- Bedingte Funktionen
- String-Funktionen
- Sonstiges Funktionen
Sammlungsfunktionen:
Diese Funktionen werden für Sammlungen verwendet. Sammlungen bedeuten, dass die Gruppierung von Elementen und die Rückgabe einzelner oder eines Arrays von Elementen vom im Funktionsnamen genannten Rückgabetyp abhängt.
Rückgabetyp | Funktionsname | Beschreibung |
---|---|---|
INT | Größe (Karte | Es ruft die Komponentennummer im Kartentyp ab und gibt sie an |
INT | Größe (Array | Es ruft die Elementnummer im Array-Typ ab und gibt sie an |
Array | Map_keys (Map | Es wird abgerufen und gibt ein Array mit den Schlüsseln der Eingabekarte. Hier ist das Array ungeordnet |
Array | Map_values (Map | Es wird ein Array abgerufen und angezeigt, das die Werte der Eingabekarte enthält. Hier ist das Array ungeordnet |
Array | Sort_array (Array | sortiert das Eingabearray in aufsteigender Reihenfolge von Array und Elementen und gibt es zurück |
Datumsfunktionen:
Diese werden verwendet, um Datumsmanipulationen und die Konvertierung von Datumstypen von einem Typ in einen anderen Typ durchzuführen:
Funktionsname | Rückgabetyp | Beschreibung |
---|---|---|
Unix_Timestamp () | BigInt | Wir erhalten den aktuellen Unix-Zeitstempel in Sekunden |
To_date (String-Zeitstempel) | Zeichenfolge | Es wird der Datumsteil einer Zeitstempelzeichenfolge abgerufen und angegeben: |
Jahr (Zeichenfolgendatum) | INT | Es wird der Jahresteil eines Datums oder einer Zeitstempelzeichenfolge abgerufen und angegeben |
Quartal (Datum / Zeitstempel / Zeichenfolge) | INT | Es wird das Quartal des Jahres für ein Datum, einen Zeitstempel oder eine Zeichenfolge im Bereich von 1 bis 4 abgerufen und angegeben |
Monat (Zeichenfolgendatum) | INT | Es gibt den Monatsteil eines Datums oder eine Zeitstempelzeichenfolge an |
Stunde (Zeichenfolgendatum) | INT | Es wird abgerufen und gibt die Stunde des Zeitstempels an |
Minute (Zeichenfolgendatum) | INT | Es wird abgerufen und gibt die Minute des Zeitstempels an |
Date_sub (String-Startdatum, int Tage) | Zeichenfolge | Es wird die Anzahl der Tage bis zum Startdatum abgerufen und subtrahiert |
Aktuelles Datum | Datum | Es wird abgerufen und gibt das aktuelle Datum zu Beginn der Abfrageauswertung an |
LAST _day (Zeichenfolgendatum) | Zeichenfolge | Es wird abgerufen und gibt den letzten Tag des Monats an, zu dem das Datum gehört |
trunc (Zeichenfolgendatum, Zeichenfolgenformat) | Zeichenfolge | Es ruft das Datum ab und gibt es an, das auf die durch das Format angegebene Einheit gekürzt wurde. Unterstützte Formate in diesem: MONAT / MON / MM, JAHR / JJJJ / JJ. |
Mathematische Funktionen :
Diese Funktionen werden für mathematische Operationen verwendet. Anstatt UDFs zu erstellen, haben wir einige integrierte mathematische Funktionen in Hive.
Funktionsname | Rückgabetyp | Beschreibung |
---|---|---|
rund (DOPPELT X) | DOPPELT | Es wird der gerundete BIGINT-Wert von X abgerufen und zurückgegeben |
rund (DOUBLE X, INT d) | DOPPELT | Es wird X abgerufen und auf x Dezimalstellen gerundet zurückgegeben |
bround (DOUBLE X) | DOPPELT | Der abgerundete BIGINT-Wert von X wird im Rundungsmodus HALF_EVEN abgerufen und zurückgegeben |
Boden (DOPPELT X) | BIGINT | Es wird der maximale BIGINT-Wert abgerufen und zurückgegeben, der gleich oder kleiner als der X-Wert ist |
Decke (DOPPEL a), Decke (DOPPEL a) | BIGINT | Es wird der minimale BIGINT-Wert abgerufen und zurückgegeben, der gleich oder größer als der X-Wert ist |
rand (), rand (INT-Samen) | DOPPELT | Es wird eine Zufallszahl abgerufen und zurückgegeben, die gleichmäßig von 0 bis 1 verteilt ist |
Bedingte Funktionen:
Diese Funktionen werden für die Prüfung bedingter Werte verwendet.
Funktionsname | Rückgabetyp | Beschreibung |
---|---|---|
if (Boolescher Testzustand, T valueTrue, T valueFalseOrNull) | T. | Es wird abgerufen und gibt den Wert True an, wenn die Testbedingung wahr ist, andernfalls den Wert False oder Null. |
ISNULL (X) | Boolescher Wert | Es wird abgerufen und gibt true, wenn X NULL ist, und andernfalls false. |
ISNOTNULL (X) | Boolescher Wert | Es wird abgerufen und gibt true, wenn X nicht NULL ist, und andernfalls false. |
String-Funktionen:
String-Manipulationen und String-Operationen Diese Funktionen können aufgerufen werden.
Funktionsname | Rückgabetyp | Beschreibung |
---|---|---|
umgekehrt (String X) | Zeichenfolge | Es wird die umgekehrte Zeichenfolge von X gegeben |
rpad (string str, int length, string pad) | Zeichenfolge | Es ruft ab und gibt str, das mit pad rechts aufgefüllt ist, auf eine Länge von Länge (ganzzahliger Wert). |
rtrim (String X) | Zeichenfolge | Es ruft die Zeichenfolge ab und gibt sie zurück, die sich aus dem Trimmen von Leerzeichen am Ende (rechte Seite) von X ergibt. Beispielsweise führt rtrim ('results') zu 'results'. |
Leerzeichen (INT n) | Zeichenfolge | Es wird abgerufen und gibt eine Zeichenfolge von n Leerzeichen. |
split (STRING str, STRING pat) | Array | Teilt str um pat (pat ist ein regulärer Ausdruck). |
Str_to_map (Text [, Trennzeichen1, Trennzeichen2]) | map | Der Text wird mithilfe von zwei Trennzeichen in Schlüssel-Wert-Paare aufgeteilt. |
UDFs (benutzerdefinierte Funktionen):
In Hive können die Benutzer eigene Funktionen definieren, um bestimmte Clientanforderungen zu erfüllen. Diese werden in Hive als UDFs bezeichnet. Benutzerdefinierte Funktionen, die in Java für bestimmte Module geschrieben wurden.
Einige UDFs wurden speziell für die Wiederverwendbarkeit von Code in Anwendungsframeworks entwickelt. Der Entwickler wird diese Funktionen in Java entwickeln und diese UDFs in den Hive integrieren.
Während der Ausführung der Abfrage kann der Entwickler den Code direkt verwenden, und UDFs geben Ausgaben gemäß den benutzerdefinierten Aufgaben zurück. Es bietet eine hohe Leistung in Bezug auf Codierung und Ausführung.
Zum Beispiel haben wir für String-Stemming keine vordefinierte Funktion in Hive, dafür können wir Stem-UDF in Java schreiben. Wo immer wir Stem-Funktionalität benötigen, können wir diese Stem-UDF direkt in Hive aufrufen.
Stammfunktionalität bedeutet hier, Wörter aus ihren Wurzelwörtern abzuleiten. Es ist, als würde der Stemming-Algorithmus die Wörter "Wunsch", "Wunsch" und "Wünsche" auf das Wurzelwort "Wunsch" reduzieren. Um diese Typfunktionalität auszuführen, können wir UDF in Java schreiben und in Hive integrieren.
Abhängig von den Anwendungsfällen, in die die UDFs geschrieben werden können, werden unterschiedliche Anzahlen von Eingabe- und Ausgabewerten akzeptiert und erzeugt.
Der allgemeine UDF-Typ akzeptiert einen einzelnen Eingabewert und erzeugt einen einzelnen Ausgabewert. Wenn die in der Abfrage verwendete UDF verwendet wird, wird die UDF für jede Zeile im Ergebnisdatensatz einmal aufgerufen.
Auf andere Weise kann es eine Gruppe von Werten als Eingabe akzeptieren und auch einen einzelnen Ausgabewert zurückgeben.