Funkce jsou vytvořeny pro konkrétní účel k provádění operací, jako jsou matematické, aritmetické, logické a relační na operandech názvů sloupců tabulky.
Integrované funkce
Toto jsou funkce, které jsou již k dispozici v Hive. Nejprve musíme zkontrolovat požadavek na aplikaci a pak můžeme tuto integrovanou funkci v našich aplikacích použít. Tyto funkce můžeme volat přímo v naší aplikaci.
Syntaxe a typy jsou uvedeny v následující části.
Typy vestavěných funkcí v HIVE
- Funkce sběru
- Funkce data
- Matematické funkce
- Podmíněné funkce
- Řetězcové funkce
- Různé Funkce
Funkce kolekce:
Tyto funkce se používají pro kolekce. Kolekce znamenají seskupení prvků a návrat jednoho nebo pole prvků závisí na typu návratu uvedeném v názvu funkce.
Typ vrácení | Název funkce | Popis |
---|---|---|
INT | velikost (mapa | Načte a přidělí číslo součásti v typu mapy |
INT | velikost (pole | Načte a dá číslo prvků v typu pole |
Pole | Map_keys (Mapa | Načte a dá pole obsahující klíče vstupní mapy. Zde je pole neuspořádané |
Pole | Map_values (Mapa | Načte a dá pole obsahující hodnoty vstupní mapy. Zde je pole neuspořádané |
Pole | Sort_array (pole | seřadí vstupní pole ve vzestupném pořadí podle pole a prvků a vrátí jej |
Funkce data:
Používají se k provádění manipulací s daty a převodu typů dat z jednoho typu na jiný:
Název funkce | Typ vrácení | Popis |
---|---|---|
Unix_Timestamp () | BigInt | Aktuální časové razítko Unixu získáme během několika sekund |
To_date (časové razítko řetězce) | tětiva | Načte a dá datovou část řetězce časového razítka: |
rok (datum řetězce) | INT | Načte a dá roku část data nebo řetězce časového razítka |
čtvrtletí (datum / časové razítko / řetězec) | INT | Načte a dá čtvrtletí roku pro datum, časové razítko nebo řetězec v rozsahu 1 až 4 |
měsíc (datum řetězce) | INT | Poskytne měsíci část data nebo řetězec časového razítka |
hodina (datum řetězce) | INT | Načte se a dá hodinu časového razítka |
minuta (datum řetězce) | INT | Načte se a dá minutu časového razítka |
Date_sub (počáteční datum řetězce, int dny) | tětiva | Načte se a odečte počet dní do počátečního data |
Dnešní datum | datum | Načte se a dá aktuální datum na začátku vyhodnocení dotazu |
POSLEDNÍ _den (datum řetězce) | tětiva | Načte se a dá poslední den měsíce, ke kterému datum patří |
trunc (datum řetězce, formát řetězce) | tětiva | Načte a dá datum zkrácené na jednotku určenou formátem. Podporované formáty v tomto: MĚSÍC / MON / MM, ROK / RRRR / RR. |
Matematické funkce :
Tyto funkce se používají pro matematické operace. Místo vytvářeníUDF máme v Hive několik vestavěných matematických funkcí.
Název funkce | Typ vrácení | Popis |
---|---|---|
kulatý (DOUBLE X) | DVOJNÁSOBEK | Načte a vrátí zaokrouhlenou BIGINT hodnotu X |
kulatý (DOUBLE X, INT d) | DVOJNÁSOBEK | Načte a vrátí X zaokrouhleno na d desetinných míst |
bround (DOUBLE X) | DVOJNÁSOBEK | Načte a vrátí zaokrouhlenou BIGINT hodnotu X pomocí režimu zaokrouhlování HALF_EVEN |
podlaha (DOUBLE X) | VELKÝ | Načte a vrátí maximální hodnotu BIGINT, která je rovna nebo menší než hodnota X. |
strop (DVOJNÁSOBKA a), strop (DVOJNÁSOBEK a) | VELKÝ | Načte a vrátí minimální BIGINT hodnotu, která je rovna nebo větší než X hodnota |
rand (), rand (INT seed) | DVOJNÁSOBEK | Načte a vrátí náhodné číslo, které je rovnoměrně rozloženo od 0 do 1 |
Podmíněné funkce:
Tyto funkce slouží ke kontrole podmíněných hodnot.
Název funkce | Typ vrácení | Popis |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Načte a dá hodnotu True, když je Testovací podmínka pravdivá, jinak dá hodnotu False nebo Null. |
ISNULL (X) | Booleovský | Načte a dá true, pokud X je NULL a jinak false. |
ISNOTNULL (X) | Booleovský | Načte a dá true, pokud X není NULL a jinak false. |
Funkce řetězce:
Řetězcovými manipulacemi a řetězcovými operacemi lze tyto funkce volat.
Název funkce | Typ vrácení | Popis |
---|---|---|
reverzní (řetězec X) | tětiva | Dá obrácený řetězec X |
rpad (string str, int length, string pad) | tětiva | Načte a dá str, což je pravé polstrování s podložkou na délku délky (celočíselná hodnota) |
rtrim (řetězec X) | tětiva | Načte a vrátí řetězec, který je výsledkem ořezávání mezer od konce (pravé strany) X. Například rtrim ('results') má za následek 'results' |
mezera (INT n) | tětiva | Načte a dá řetězec n mezer. |
rozdělit (STRING str, STRING pat) | pole | Rozdělí str kolem pat (pat je regulární výraz). |
Str_to_map (text [, oddělovač1, oddělovač2]) | mapa <Řetězec, Řetězec> | Rozdělí text na páry klíč – hodnota pomocí dvou oddělovačů. |
UDF (uživatelem definované funkce):
V Hive mohou uživatelé definovat vlastní funkce, aby splnili určité požadavky klienta. Tito jsou známí jako UDF v Hive. Uživatelem definované funkce napsané v Javě pro konkrétní moduly.
Některé z UDF jsou speciálně navrženy pro opětovnou použitelnost kódu v aplikačních rámcích. Vývojář bude tyto funkce vyvíjet v Javě a integrovat tyto UDF do Hive.
Během provádění dotazu může vývojář přímo použít kód a UDF vrátí výstupy podle uživatelem definovaných úkolů. Poskytne vysoký výkon, pokud jde o kódování a provádění.
Například pro řetězec vyplývající nemáme v Hive žádnou předdefinovanou funkci, proto můžeme psát kmenové UDF v Javě. Kdekoli požadujeme funkčnost stonku, můžeme tento kmen přímo nazývat UDF v Hive.
Zde funkce stonku znamená odvození slov od kořenových slov. Je to jako zastavující algoritmus, který redukuje slova „přání“, „přání“ a „přání“ na kořenové slovo „přání“. Pro provádění této funkce typu můžeme psát UDF v java a integrovat se s Hive.
V závislosti na případech použití, které lze zapsat UDF, bude přijímat a produkovat různé počty vstupních a výstupních hodnot.
Obecný typ UDF přijme jednu vstupní hodnotu a vytvoří jednu výstupní hodnotu. Pokud se v dotazu použije UDF, bude UDF voláno jednou pro každý řádek ve výsledkové sadě dat.
Jiným způsobem může přijmout skupinu hodnot jako vstupní a také vrátit jednu výstupní hodnotu.