Hive funkció: Beépített & UDF (felhasználó által definiált funkciók)

Tartalomjegyzék:

Anonim

A függvényeket egy meghatározott célra építik, hogy olyan műveleteket hajtsanak végre, mint a matematikai, számtani, logikai és relációs a táblázat oszlopnevek operandusain.

Beépített funkciók

Ezek olyan funkciók, amelyek már elérhetők a Hive-ban. Először ellenőriznünk kell az alkalmazási követelményt, majd ezt a beépített funkciókat felhasználhatjuk alkalmazásainkban. Ezeket a funkciókat közvetlenül az alkalmazásunkban hívhatjuk meg.

A szintaxist és típusokat a következő szakasz említi.

A HIVE beépített funkcióinak típusai

  • Gyűjtési funkciók
  • Dátum függvények
  • Matematikai függvények
  • Feltételes függvények
  • Húrfüggvények
  • Egyéb Funkciók

Gyűjtési funkciók:

Ezeket a funkciókat a gyűjteményekhez használják. A gyűjtemények az elemek csoportosítását jelentik, és az egyes elemek vagy tömbök visszatérése a függvény nevében említett visszatérési típustól függ.

Vissza típusa Funkció neve Leírás
INT méret (Térkép ) Megkapja és megadja az alkatrészek számát a térképtípusban
INT méret (tömb ) Meg fogja kapni és megadja az elemek számát a tömbtípusban
Tömb Map_keys (Térkép ) Meghívja és megadja a tömböt, amely tartalmazza a bemeneti térkép kulcsait. Itt a tömb rendezetlen
Tömb Térkép_értékek (Térkép ) Meghívja és megadja a tömböt, amely tartalmazza az input térkép értékeit. Itt a tömb rendezetlen
Tömb Sort_array (tömb ) a bemeneti tömböt tömb és elemek növekvő sorrendjében rendezi és visszaadja

Dátumfunkciók:

Ezeket a dátummanipulációk és a dátumtípusok egyik típusból a másikba történő átalakítására használják:

Funkció neve Vissza típusa Leírás
Unix_Timestamp () BigInt Pillanatok alatt megkapjuk az aktuális Unix időbélyeget
To_date (string időbélyeg) húr Megkapja és megadja az időbélyegző karakterlánc dátumának részét:
év (karakterlánc dátuma) INT Megkapja és megadja az év dátum vagy időbélyegző karakterláncát
negyedév (dátum / időbélyeg / karakterlánc) INT Megkapja és megadja az év negyedét egy dátumra, időbélyegre vagy karakterláncra az 1–4 tartományban
hónap (karakterlánc dátuma) INT Megadja a hónap dátumrészét vagy időbélyegző karakterláncát
óra (karakterlánc dátuma) INT Megkapja és megadja az időbélyeg óráját
perc (karakterlánc dátuma) INT Megkapja és megadja az időbélyeg percét
Date_sub (karakterlánc kezdő dátuma, int nap) húr Megkapja és kivonja a kezdő dátumhoz tartozó napok számát
Mostani dátum dátum Ez lekérdezi és megadja az aktuális dátumot a lekérdezés kiértékelésének kezdetekor
LAST _day (string string) húr Letölti és megadja annak a hónapnak az utolsó napját, amelyhez a dátum tartozik
csonk (string dátum, string formátum) húr Be fogja tölteni, és a dátumot csonkolja a formátum által meghatározott egységre. Támogatott formátumok: HÓNAP / HÉN / HH, ÉV / ÉÉÉÉ / ÉÉ.

Matematikai funkciók :

Ezeket a függvényeket matematikai műveletekhez használják. Az UDF-ek létrehozása helyett néhány beépített matematikai függvény van a Hive-ban.

Funkció neve Vissza típusa Leírás
kerek (Dupla X) KETTŐS Megkapja és visszaadja az X lekerekített BIGINT értékét
kerek (X KETTŐ, INT d) KETTŐS Megkapja és X-et d tizedesjegyre kerekítve adja vissza
bround (Dupla X) KETTŐS HALF_EVEN kerekítési mód használatával beolvassa és visszaadja az X lekerekített BIGINT értékét
emelet (Dupla X) BIGINT Megkapja és visszaadja a maximális BIGINT értéket, amely egyenlő vagy kevesebb, mint X érték
mennyezet (DOUBLE a), mennyezet (DOUBLE a) BIGINT Megkapja és visszaadja a minimális BIGINT értéket, amely egyenlő vagy nagyobb az X értékkel
rand (), rand (INT mag) KETTŐS Beolvas és visszaküld egy véletlenszerű számot, amely egyenletesen oszlik el 0-tól 1-ig

Feltételes funkciók:

Ezek a függvények a feltételes értékek ellenőrzésére szolgálnak.

Funkció neve Vissza típusa Leírás
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Ha a tesztfeltétel igaz, akkor beolvassa és igaz értéket ad, másként hamis vagy null értéket ad.
ISNULL (X) Logikai Megkapja és igazat ad, ha X NULL, hamis esetben pedig hamis.
ISNOTNULL (X) Logikai Ha X nem NULL és hamis, akkor hamis és igaz.

Karakterlánc funkciók:

Karakterlánc-manipulációk és karakterlánc-műveletek ezek a függvények meghívhatók.

Funkció neve Vissza típusa Leírás
fordított (X karakterlánc) húr Ez megadja az X fordított karakterláncát
rpad (string str, int hosszúság, string pad) húr Megkapja és megadja az str karaktert, amely jobbra van kitöltve a párnával, hossza (egész érték)
rtrim (X karakterlánc) húr Megkapja és visszaadja az X végétől (jobb oldali) a szóközök kivágásával kapott karakterláncot. Például az rtrim ('eredmények') eredményeket eredményez
szóköz (INT n) húr Meghívja és egy sor n szóközt ad meg.
felosztás (STRING str, STRING pat) sor Str-t hasít a pat köré (a pat szabályos kifejezés).
Str_to_map (szöveg [, elválasztó1, elválasztó2]) térkép Két elválasztó segítségével felosztja a szöveget kulcs-érték párokra.

UDF-ek (felhasználó által definiált funkciók):

A Hive-ban a felhasználók meghatározhatják saját függvényeiket, hogy megfeleljenek az ügyfél bizonyos követelményeinek. Ezek a kaptárban UDF-k. Felhasználó által definiált függvények Java-ban írva meghatározott modulokhoz.

Néhány UDF-t kifejezetten a kód újrafelhasználhatóságára terveztek az alkalmazás kereteiben. A fejlesztő ezeket a funkciókat a Java-ban fejleszti, és ezeket az UDF-eket integrálja a Hive-ba.

A Lekérdezés végrehajtása során a fejlesztő közvetlenül használhatja a kódot, és az UDF-ek a kimeneteket a felhasználó által megadott feladatoknak megfelelően adják vissza. Nagy teljesítményt nyújt a kódolás és a végrehajtás szempontjából.

Például a karakterlánc-elrendezéshez nincs előre definiált függvényünk a Hive-ban, ehhez írhatunk UDF törzset Java-ba. Ahol a Stem funkcionalitásra van szükségünk, ezt a Stem-et közvetlenül HDF-nek hívhatjuk.

A szárfunkció itt azt jelenti, hogy a szavakat a gyökérszavakból vezetjük le. Olyan ez, mintha a algoritmus szétválasztaná a "kívánság", a "kívánság" és a "kívánságok" szavakat a "kívánság" alapszóvá. Az ilyen típusú funkciók elvégzéséhez írhatunk UDF-et Java-ba, és integrálhatjuk a Hive-be.

Az UDF-ek felhasználási eseteitől függően különböző számú bemeneti és kimeneti értéket fogad el és állít elő.

Az UDF általános típusa egyetlen bemeneti értéket fogad el, és egyetlen kimeneti értéket állít elő. Ha a lekérdezésben használt UDF-et használja, akkor az eredményadathalmaz minden egyes sorához egyszer meghívásra kerül az UDF.

Más módon elfogadhat egy értékcsoportot bemenetként, és visszaadhatja az egyszeres kimeneti értéket is.