Bevezetés a beépített kaptár funkciókba
A függvények különféle analitikai követelmények és műveletek végrehajtására készültek, mint például matematikai, logikai, számtani és relációs, hatalmas adatkészletekre és táblázatokra. A függvényeket akkor használjuk, amikor hasonló műveleteket többször kell újrafelhasználnunk. Ebben a fejlett BigData világban hatalmas adatkészletek kezelése és feldolgozása megnehezíti a MapReduce programok írását. Tehát a Hive Query Language (HQL) az Apache Hadoop tetején került bevezetésre 2010 októberében, amelynek segítségével könnyen lekérdezéseket futtathatunk, hasonlóan az SQL-hez. A HQL-eket belsőleg tovább konvertálják Mapreduce programokká, hogy elérjék a kimeneteket. Ebben a témában a Hive beépített funkcióit tárgyaljuk.
A kaptárfunkciókat nagyjából két kategóriába sorolhatjuk:
- Beépített funkciók
- Felhasználó által definiált funkciók
A kaptár beépített funkciói
A beépített funkciók előre definiáltak és könnyen elérhetők a Hive alkalmazásában. Az alábbiak szerint vannak csoportosítva:
1. Karakterlánc-funkciók
Karakterlánc-manipulációkhoz és transzformációkhoz használják.
Funkció neve | Vissza típus | Leírás | Példa |
substr (húr, int, int) | Húr | Visszatér egy karakterláncot a megadott kezdőpozícióból a megadott hosszúságba | substr ('Kaptár lekérdezés', 5, 5) eredménye 'lekérdezés' |
rtrim (X karakterlánc) | Húr | Karakterláncot ad vissza, jobb oldali szóköz nélkül | Az rtrim ('Hello') eredménye 'Hello' |
ltrim (X karakterlánc) | Húr | Visszaad egy karakterláncot bal oldali szóköz nélkül | ltrim ('Hello') eredményt 'Hello' |
fordított (X karakterlánc) | Húr | Visszaad egy X fordított karakterláncot | fordított ('hello') eredménye: 'olleh' |
rpad (X, int, string) | Húr | A jobb oldali párnázott húr „pad” -ot ad vissza | Az rpad ('Hello', 3, 'hi') eredménye: 'Hello hi hi hi' |
lpad (X, int, string) | Húr | Visszaad egy bal oldali párnázott húrot, amelynek 'pad' -ja hosszú | Az lpad ('Hello', 3, 'Hi') eredménye: 'Hi Hi Hi Hello' |
split (X karakterlánc, karakterlánc) | Sor | A karakterláncok tömbjét adja vissza, miután a karakterláncot megosztotta a megadott minta körül | split („A, B, C, D”, ”, ”) eredményeket eredményez ('A', B ', ' C ', ' D ') |
hossz (húr X) | Egész szám | Visszaadja az X karakterlánc hosszát | hosszúság ('Bigdata') eredménye 7 |
concat (X karakterlánc, Y karakterlánc) | Húr | Visszaadja az X és Y összekapcsolt karakterláncát | concat ('Hello', 'World') eredménye 'HelloWorld' |
2. Matematikai függvények
Matematikai műveletek, például kerekítés, mennyezet, padló stb. Alkalmazására használják, az UDF-k létrehozása helyett.
Funkció neve | Vissza típus | Leírás | Példa |
kerek (dupla X) | Kettős | Visszaadja az X lekerekített értékét | forduló (29, 5) eredménye 30 |
kerek (dupla X, int d) | Kettős | Visszaadja az X lekerekített értékét d decimális pontossággal | forduló (29.3456, 2) eredménye 29, 34 |
ceil (dupla X) | Kettős | Minimális BIGINT értéket ad vissza, amely egyenlő vagy nagyobb, mint X | ceil (20.5555) eredménye 21 |
padló (dupla X) | Kettős | Visszaad egy maximális BIGINT értéket, amely egyenlő vagy nagyobb, mint X | ceil (20.5555) eredménye 20 |
rand () | Kettős | Visszaad véletlenszerű számokat 0 és 9 között | rand () eredmények rand (0-9) |
abs (dupla X) | Kettős | Visszaadja az X szám abszolút értékét | abszolút érték (-25) 25 eredményt eredményez |
pow (dupla X, dupla Y) | Kettős | Visszatér X értéket ad vissza az Y teljesítményre | pow (2, 3) eredménye 8 |
exp (dupla X) | Kettős | Visszaadja az X exponens értékét | exp (2) eredménye 7, 389 |
3. Feltételes funkciók
A kifejezés valódi vagy hamis kifejezésének ellenőrzésére szolgál, és a megfelelő eredményeket adja vissza.
Funkció neve | Vissza típus | Leírás | Példa |
ISNULL (X) | logikai | IGAZ-t ad vissza, ha X NULL értéke hamis | Az isnull ('NULL') IGAZ értékben tér vissza |
isnotnull (X) | logikai | Visszaadja az IGAZ értéket, ha X nem NULL hamis | Az isnotnull ('NULL') FALSE formátumban tér vissza |
nvl (arg X, arg Y) | Húr | Visszaadja az arg Y értéket, ha arg X NULL, akkor visszatér arg X értéket | nvl ('NULL', 'Érték Null') eredményt eredményez: 'Érték Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Igazként tér vissza, ha a teszt feltételei igazak, hamis vagy egyéb esetben semleges | if (2 = 2, 'igaz', 'hamis') |
összenőnek (X, Y) | (Bármi) | Visszahozza az első nem null értéket a listából (kétségeim vannak ebben - visszatér-e a legelső érték vagy az összes nem nulla érték?) | coalesce (null, null, null, 1, 5, null, null, 6) eredménye 1 |
4. Dátum funkciók
Dátumkezelés és dátumtípus-konvertálás végrehajtására szolgál.
Funkció neve | Vissza típus | Leírás | Példa |
mostani dátum | Dátum | Visszaadja a lekérdezés végrehajtásának aktuális dátumát | Az current_date () a mai dátumot adja vissza |
unix_timestamp () | bigint | Visszaadja a lekérdezés végrehajtásának aktuális unix időbélyegzőjét másodpercben | unix_timestamp () az aktuális unix időbélyeget adja vissza |
év (húr dátum) | Int | Egy dátum év részét adja vissza | év ('1994-11-24') visszatér 1994-re |
negyedév (karakterlánc dátum) | Int | A dátum év negyedévét adja vissza | negyedév ('1994-11-24') visszatér 4 |
hónap (karakterlánc dátum) | Int | Visszaadja a dátum havi részét | A hónap ('1994-11-24') visszatér 11-et |
óra (karakterlánc dátum) | Int | Visszaadja az időbélyegző órás részét | óra ('1994-11-24 12:45:23') visszatér 12-re |
perc (karakterlánc dátum) | Int | Visszaadja az időbélyeg perc részét | év ('1994-11-24 12:45:23') visszatér 45 |
randizni() | Húr | Visszaadja az időbélyegző string dátumrészét | to_date () a dátum részét adja vissza |
date_sub (karakterlánc dátum, int napok) | Húr | Visszaadja a napok számának kivonását a dátumhoz | a date_sub ('1994-11-24', 20) "1994-11-04" értéket ad vissza |
months_between (dátum1, dátum2) | Kettős | Visszaadja a dátum1 és dátum2 közötti hónapszámot (hónapok vagy napok száma?)) | hónapok között ('1994-11-24', '1994-11-04') visszatér 20 |
5. Gyűjtési funkció
A gyűjteménytípusok, például térkép, tömb stb. Részeinek átalakítására és visszakeresésére szolgál.
Funkció neve | Vissza típus | Leírás | Példa |
mérete (térkép) | Int | Visszaadja a térképen szereplő összes elemet | méret (('a': 2, 'b': 6)) a 2-et adja vissza |
mérete (array) | Int | Visszaadja a tömb összes elemét | méret ((1, 3, 4, 7)) 4-et ad vissza |
array_contains (tömb, érték) | logikai | Igaz, ha a tömb tartalmazza az értéket | Az array_contains ((1, 3, 9, 8, 5, 4, 7), 5) TRUE értéket ad vissza |
map_keys (térkép) | Sor | A térkép rendezetlen tömbjeit adja vissza | map_keys (('a': 2, 'b': 6, 'c': 1)) visszatér ('b', 'c', 'a') |
map_valuess (térkép) | Sor | Visszaadja a térkép értékének rendezetlen tömbjét | map_keys (('a': 2, 'b': 6, 'c': 1)) visszatér (1, 6, 2) |
sort_array (array) | Sor | Az adott tömb rendezett tömbjét adja vissza | sort_array ((1, 3, 9, 8, 5, 4, 7)) visszatér (1, 3, 4, 5, 7, 8, 9) |
Következtetés
Eddig különféle beépített funkciókat tárgyaltunk a Hive-ben. A MapReduce-hoz képest a Hive sokkal kényelmesebb és időtakarékosabb. Bárki, aki rendelkezik alapvető SQL ismeretekkel, könnyen írhat HQL-t, ahelyett, hogy bonyolult MapReduce-programokat dolgozna fel az adatfeldolgozásra.
Ajánlott cikkek
Ez egy útmutató a kaptár beépített funkcióihoz. Itt tárgyaljuk a beépített funkciókat, amelyek előre definiáltak és könnyen elérhetők a kaptárban. A következő cikkben további információkat is megnézhet -
- Kaptárhúr-funkciók
- Kaptár funkció
- Kaptárparancsok
- Kaptár építészet
- Kaptárrendelés
- Kaptár telepítése
- Python beépített funkciók