Funkce úlu: Integrovaný & UDF (uživatelem definované funkce)

Obsah:

Anonim

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.