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.