Einführung in die integrierten Funktionen von Hive

Funktionen sind so aufgebaut, dass sie unterschiedliche analytische Anforderungen und Operationen wie mathematische, logische, arithmetische und relationale Operationen für große Datasets und Tabellen ausführen. Funktionen werden verwendet, wenn ähnliche Operationen mehrmals verwendet werden müssen. In dieser fortschrittlichen BigData-Welt wird das Schreiben von MapReduce-Programmen schwierig, um große Datenmengen zu verarbeiten. Daher wurde im Oktober 2010 zusätzlich zu Apache Hadoop die Hive Query Language (HQL) eingeführt, mit deren Hilfe Abfragen, ähnlich wie in SQL, problemlos ausgeführt werden können. HQLs werden intern weiter in Mapreduce-Programme konvertiert, um die Ergebnisse zu erhalten. In diesem Thema werden die integrierten Funktionen von Hive erläutert.

Hive-Funktionen lassen sich grob in zwei Kategorien einteilen:

  1. Eingebaute Funktionen
  2. Benutzerdefinierte Funktionen

Eingebaute Funktionen von Hive

Integrierte Funktionen sind vordefiniert und können in Hive verwendet werden. Sie sind wie folgt kategorisiert:

1. String-Funktionen

Wird für String-Manipulationen und -Transformationen verwendet.

FunktionsnameRückgabetypBeschreibungBeispiel
substr (string, int, int)StringEs wird eine Zeichenfolge von der angegebenen Startposition bis zur angegebenen Länge zurückgegebensubstr ('Hive-Abfrage', 5, 5) ergibt 'Abfrage'
rtrim (String X)StringEs wird eine Zeichenfolge ohne rechts führende Leerzeichen zurückgegebenrtrim ('Hallo') ergibt 'Hallo'
ltrim (String X)StringEs wird eine Zeichenfolge ohne führende Leerzeichen zurückgegebenltrim ('Hallo') ergibt 'Hallo'
umkehren (Zeichenfolge X)StringEs wird eine umgekehrte Zeichenfolge von X zurückgegebenrückwärts ('hallo') ergibt 'olleh'
rpad (string X, int, string)StringEs gibt eine rechts gepolsterte Zeichenfolge mit 'pad' mit einer Länge von zurückrpad ('Hello', 3, 'hi') ergibt 'Hello hi hi hi'
lpad (Zeichenkette X, int, string)StringEs gibt eine links gepolsterte Zeichenfolge mit 'pad' mit einer Länge von zurücklpad ('Hallo', 3, 'Hallo') ergibt 'Hallo Hallo Hallo'
split (Zeichenfolge X, Zeichenfolge pat)ArrayNach dem Aufteilen der Zeichenfolge um das angegebene Muster wird ein Array von Zeichenfolgen zurückgegebenAufteilen ("A, B, C, D", ", ") führt zu ("A", "B", "C", "D")
Länge (Zeichenfolge X)Ganze ZahlEs gibt die Länge der Zeichenfolge X zurückLänge ('Bigdata') ergibt 7
concat (Zeichenfolge X, Zeichenfolge Y)StringEs wird eine verkettete Zeichenfolge von X und Y zurückgegebenconcat ('Hello', 'World') ergibt 'HelloWorld'

2. Mathematische Funktionen

Wird zum Anwenden mathematischer Operationen wie Runden, Decken, Boden usw. verwendet, anstatt UDFs zu erstellen.

FunktionsnameRückgabetypBeschreibungBeispiel
rund (doppeltes X)DoppeltEs gibt den gerundeten Wert von X zurückRunde (29.5) ergibt 30
rund (doppeltes X, Int d)DoppeltEs gibt den abgerundeten Wert von X auf d Dezimalstellen zurückRunde (29.3456, 2) ergibt 29.34
ceil (doppeltes X)DoppeltEs wird ein minimaler BIGINT-Wert zurückgegeben, der gleich oder größer als X istceil (20.5555) ergibt 21
Boden (Doppel-X)DoppeltEs wird ein maximaler BIGINT-Wert zurückgegeben, der gleich oder größer als X istceil (20.5555) ergibt 20
rand ()DoppeltEs werden Zufallszahlen zwischen 0 und 9 zurückgegebenrand () ergibt rand (0-9)
abs (doppeltes X)DoppeltEs gibt den absoluten Wert der Zahl X zurückabs (-25) ergibt 25
pow (doppeltes X, doppeltes Y)DoppeltDer X-Wert wird zur Y-Potenz erhöhtpow (2, 3) ergibt 8
exp (doppeltes X)DoppeltEs gibt den Exponentenwert von X zurückexp (2) ergibt 7.389

3. Bedingte Funktionen

Wird verwendet, um einen Ausdruck auf Wahr oder Falsch zu prüfen und entsprechende Ergebnisse zurückzugeben.

FunktionsnameRückgabetypBeschreibungBeispiel
isnull (X)BooleanEs gibt TRUE zurück, wenn X NULL ist, andernfalls falseisnull ('NULL') gibt TRUE zurück
isnotnull (X)BooleanEs gibt TRUE zurück, wenn X nicht NULL ist, andernfalls falseisnotnull ('NULL') gibt in FALSE zurück
nvl (arg X, arg Y)StringEs gibt arg Y zurück, wenn arg X NULL ist. Anderenfalls wird arg X zurückgegebennvl ('NULL', 'Wert ist Null') ergibt 'Wert ist Null'
if (Boolean testCondition, T valueTrue, T valueFalseOrNull)TEs gibt True zurück, wenn die Testbedingung true ist, andernfalls False oder Nullif (2 = 2, 'True', 'False')
verschmelzen (X, Y)(Irgendein)Es gibt die ersten Nicht-Null-Werte aus der Liste zurück. (Ich bezweifle dies. Wird es den allerersten Wert oder alle Nicht-Null-Werte zurückgeben?)Zusammenführen (null, null, null, 1, 5, null, null, 6) ergibt 1

4. Datumsfunktionen

Dient zum Durchführen von Datumsmanipulationen und Konvertierungen von Datumstypen.

FunktionsnameRückgabetypBeschreibungBeispiel
aktuelles DatumDatumEs gibt das aktuelle Datum der Abfrageausführung zurückcurrent_date () gibt das heutige Datum zurück
unix_timestamp ()BigIntGibt den aktuellen Unix-Zeitstempel der Abfrageausführung in Sekunden zurückunix_timestamp () gibt den aktuellen Unix-Zeitstempel zurück
Jahr (Streichdatum)IntEs gibt das Jahr als Teil eines Datums zurückJahr ('1994-11-24') gibt 1994 zurück
Quartal (Streichdatum)IntEs gibt das Quartal des Jahres eines Datums zurückQuartal ('1994-11-24') gibt 4 zurück
Monat (Streichdatum)IntEs gibt den Monatsteil eines Datums zurückmonth ('1994-11-24') gibt 11 zurück
Stunde (Streichdatum)IntEs gibt den Stundenteil des Zeitstempels zurückhour ('1994-11-24 12:45:23') gibt 12 zurück
Minute (Streichdatum)IntEs gibt den Minutenanteil des Zeitstempels zurückJahr ('1994-11-24 12:45:23') gibt 45 zurück
miteinander ausgehen()StringEr gibt das Datum als Teil der Zeitstempelzeichenfolge zurückto_date () gibt einen Datumsteil zurück
date_sub (Zeichenfolge date, int days)StringEs wird die Anzahl der Tage vom Datum abgezogendate_sub ('1994-11-24', 20) gibt '1994-11-04' zurück
months_between (date1, date2)DoppeltGibt die Anzahl der Monate zwischen Datum1 und Datum2 zurück. (Monate oder Anzahl der Tage?)months_between ('1994-11-24', '1994-11-04') gibt 20 zurück

5. Erfassungsfunktion

Wird zum Transformieren und Abrufen von Teilen von Sammlungstypen wie Karten, Arrays usw. verwendet.

FunktionsnameRückgabetypBeschreibungBeispiel
Größe (Karte)IntEs gibt die Gesamtzahl der Elemente in der Karte zurücksize (('a': 2, 'b': 6)) gibt 2 zurück
Größe (Array)IntEs gibt die Gesamtzahl der Elemente im Array zurücksize ((1, 3, 4, 7)) gibt 4 zurück
array_contains (Array, Wert)BooleanEs gibt true zurück, wenn das Array den Wert enthältarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) gibt TRUE zurück
map_keys (Karte)ArrayEs wird ein ungeordnetes Array von Schlüsseln der Karte zurückgegebenmap_keys (('a': 2, 'b': 6, 'c': 1)) gibt ('b', 'c', 'a') zurück
map_valuess (Karte)ArrayEs wird ein ungeordnetes Array von Werten der Karte zurückgegebenmap_keys (('a': 2, 'b': 6, 'c': 1)) gibt (1, 6, 2) zurück
sort_array (array)ArrayEs wird ein sortiertes Array des angegebenen Arrays zurückgegebensort_array ((1, 3, 9, 8, 5, 4, 7)) gibt (1, 3, 4, 5, 7, 8, 9) zurück

Fazit

Bisher haben wir verschiedene integrierte Funktionen in Hive besprochen. Im Vergleich zu MapReduce ist Hive praktischer und zeitsparender. Jeder, der über grundlegende SQL-Kenntnisse verfügt, kann problemlos HQLs schreiben, anstatt komplizierte MapReduce-Programme für die Datenverarbeitung.

Empfohlene Artikel

Dies ist eine Anleitung zu den integrierten Funktionen von Hive. Hier besprechen wir die integrierten Funktionen, die vordefiniert sind und in Hive verwendet werden können. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Hive-String-Funktionen
  2. Hive-Funktion
  3. Hive-Befehle
  4. Bienenstock-Architektur
  5. Hive Order By
  6. Hive-Installation
  7. Eingebaute Python-Funktionen