Hive-Funktion: Eingebaute & UDF (Benutzerdefinierte Funktionen)

Inhaltsverzeichnis:

Anonim

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.