Funkcia úľa: Vstavaný & UDF (funkcie definované používateľom)

Obsah:

Anonim

Funkcie sú zostavené na konkrétny účel na vykonávanie operácií, ako sú matematické, aritmetické, logické a relačné operandy s názvami stĺpcov tabuľky.

Zabudované funkcie

Toto sú funkcie, ktoré sú už k dispozícii v úli. Najskôr musíme skontrolovať požiadavku na aplikáciu a potom môžeme túto vstavanú funkciu použiť v našich aplikáciách. Tieto funkcie môžeme zavolať priamo v našej aplikácii.

Syntax a typy sú uvedené v nasledujúcej časti.

Typy vstavaných funkcií v HIVE

  • Funkcie zhromažďovania
  • Funkcie dátumu
  • Matematické funkcie
  • Podmienené funkcie
  • Funkcie reťazca
  • Rôzne Funkcie

Funkcie zbierky:

Tieto funkcie sa používajú pre zbierky. Kolekcie znamenajú zoskupenie prvkov a vrátenie jedného alebo poľa prvkov závisí od typu návratu uvedeného v názve funkcie.

Typ vrátenia Názov funkcie Popis
INT veľkosť (mapa ) Načíta a poskytne číslu komponentu v type mapy
INT veľkosť (pole ) Bude načítať a dať číslu prvkov v type poľa
Pole Map_keys (Mapa ) Načíta a dá pole obsahujúce kľúče vstupnej mapy. Tu je pole v poradí
Pole Map_values ​​(mapa ) Načíta a dá pole obsahujúce hodnoty vstupnej mapy. Tu je pole v poradí
Pole Sort_array (pole ) triedi vstupné pole vo vzostupnom poradí podľa poľa a prvkov a vracia ho

Funkcie dátumu:

Používajú sa na vykonanie manipulácie s dátumom a konverzie typov dátumu z jedného typu na druhý:

Názov funkcie Typ vrátenia Popis
Unix_Timestamp () BigInt Aktuálnu časovú značku Unixu dostaneme v priebehu niekoľkých sekúnd
To_date (časová značka reťazca) struna Načíta a dá dátovú časť reťazca časovej pečiatky:
rok (dátum reťazca) INT Načíta a dá roku časť dátumu alebo reťazca časovej pečiatky
štvrťrok (dátum / časová pečiatka / reťazec) INT Načíta a dá štvrťroku dátum, časovú pečiatku alebo reťazec v rozsahu 1 až 4
mesiac (dátum reťazca) INT Poskytne mesiacu časť dátumu alebo reťazec časovej pečiatky
hodina (dátum reťazca) INT Načíta sa a dá hodinu časovej pečiatky
minúta (dátum reťazca) INT Načíta sa a dá minútu časovej pečiatky
Date_sub (počiatočný dátum reťazca, int dni) struna Načíta sa a dá Odčítanie počtu dní do počiatočného dátumu
Aktuálny dátum dátum Načíta sa a dá aktuálny dátum na začiatku vyhodnotenia dotazu
POSLEDNÝ _deň (dátum reťazca) struna Načíta sa a dá posledný deň v mesiaci, ku ktorému dátum patrí
trunc (dátum reťazca, formát reťazca) struna Načíta sa a dá dátum skrátený na jednotku určenú formátom. Podporované formáty v tomto formáte: MESIAC / MON / MM, YEAR / RRRR / RR.

Matematické funkcie :

Tieto funkcie sa používajú pre matematické operácie. Namiesto vytváraniaUDF máme v úli niekoľko zabudovaných matematických funkcií.

Názov funkcie Typ vrátenia Popis
guľatý (DVOJNÁSOBNÝ X) DVOJNÁSOBNÝ Načíta a vráti zaoblenú BIGINT hodnotu X
kolo (DVOJNÁSOBNÝ X, INT d) DVOJNÁSOBNÝ Načíta a vráti X zaokrúhlené na d desatinných miest
bround (DOUBLE X) DVOJNÁSOBNÝ Načíta a vráti zaoblenú BIGINT hodnotu X pomocou režimu zaokrúhľovania HALF_EVEN
poschodie (DOUBLE X) VEĽKÝ Načíta a vráti maximálnu hodnotu BIGINT, ktorá je rovná alebo menšia ako hodnota X.
strop (DVOJNÁSOB a), strop (DVOJNÁSOB a) VEĽKÝ Načíta a vráti minimálnu VEĽKÚ hodnotu, ktorá je rovná alebo väčšia ako hodnota X.
rand (), rand (osivo INT) DVOJNÁSOBNÝ Načíta a vráti náhodné číslo, ktoré je rovnomerne rozložené od 0 do 1

Podmienené funkcie:

Tieto funkcie sa používajú na kontrolu podmienených hodnôt.

Názov funkcie Typ vrátenia Popis
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Načíta a dá hodnotu True, keď je Testovacia podmienka pravdivá, inak dá hodnotu False alebo Null.
ISNULL (X) Boolovský Načíta a dáva true, ak X je NULL a inak false.
ISNOTNULL (X) Boolovský Načíta a dá true, ak X nie je NULL a inak false.

Funkcie reťazca:

Tieto funkcie možno nazvať manipuláciou s reťazcami a operáciami s reťazcami.

Názov funkcie Typ vrátenia Popis
reverz (reťazec X) struna Poskytne obrátený reťazec X
rpad (string str, int length, string pad) struna Načíta a dá str, ktorá je správne polstrovaná podložkou na dĺžku (celočíselná hodnota)
rtrim (reťazec X) struna Načíta a vráti reťazec, ktorý je výsledkom orezania medzier od konca (pravej strany) znaku X. Napríklad príkaz rtrim ('results') má za následok 'results'
medzera (INT n) struna Načíta a dá reťazec n medzier.
rozdelené (STRING str., STRING pat) pole Rozdelí str okolo pat (pat je regulárny výraz).
Str_to_map (text [, oddeľovač1, oddeľovač2]) mapa Rozdelí text na páry kľúč - hodnota pomocou dvoch oddeľovačov.

UDF (funkcie definované používateľom):

V úli môžu používatelia definovať vlastné funkcie na splnenie určitých požiadaviek klienta. Tieto sú známe ako UDF v úli. Užívateľom definované funkcie napísané v Jave pre konkrétne moduly.

Niektoré z UDF sú špeciálne navrhnuté na opätovné použitie kódu v aplikačných rámcoch. Vývojár vyvinie tieto funkcie v prostredí Java a tieto UDF integruje do úľa.

Počas vykonávania dotazu môže vývojár priamo použiť kód a UDF vrátia výstupy podľa úloh definovaných používateľom. Poskytne vysoký výkon, pokiaľ ide o kódovanie a vykonávanie.

Napríklad pre reťazec stemming nemáme v Hive žiadnu preddefinovanú funkciu, preto môžeme do Java napísať stem UDF. Kedykoľvek požadujeme funkčnosť kmeňa, môžeme tento kmeň volať priamo do UDF v úli.

Tu kmeňová funkčnosť znamená odvodzovanie slov od koreňových slov. Je to ako keby algoritmus typu stemming redukoval slová „prianie“, „prianie“ a „prianie“ na koreňové slovo „prianie“. Na vykonávanie tohto typu funkcií môžeme napísať UDF v jave a integrovať sa s Hive.

V závislosti na prípadoch použitia, ktoré je možné zapísať na UDF, bude prijímať a vytvárať rôzne počty vstupných a výstupných hodnôt.

Všeobecný typ UDF bude akceptovať jednu vstupnú hodnotu a vytvorí jednu výstupnú hodnotu. Ak sa v dotaze použije UDF, potom sa UDF zavolá jedenkrát pre každý riadok vo výslednej množine údajov.

Iným spôsobom môže prijať skupinu hodnôt ako vstupnú a návratnú jedinú výstupnú hodnotu.