Úvod do vestavěných funkcí úlu
Funkce jsou vytvořeny pro provádění různých analytických požadavků a operací, jako jsou matematické, logické, aritmetické a relační, na obrovských souborech dat a tabulkách. Funkce se používají, když musíme opakovaně používat podobné operace vícekrát. V tomto pokročilém světě BigData, zpracování a zpracování obrovských datových sad, je psaní programů MapReduce obtížné. Takže Hive Query Language (HQL) byl představen na vrcholu Apache Hadoop v říjnu 2010, pomocí kterého můžeme snadno spouštět dotazy podobné SQL. HQL jsou dále interně převedeny na programy Mapreduce, aby poskytly výstupy. V tomto tématu budeme hovořit o vestavěných funkcích Úlu.
Úlové funkce jsou široce rozděleny do dvou:
- Vestavěné funkce
- Uživatelem definované funkce
Vestavěné funkce úlu
Vestavěné funkce jsou předdefinovány a snadno dostupné pro použití v Úlu. Jsou rozděleny do následujících kategorií:
1. Řetězcové funkce
Používá se pro manipulaci s řetězci a transformaci.
Název funkce | Typ vrácení | Popis | Příklad |
subst (string, int, int) | Tětiva | Vrací řetězec ze zadané počáteční pozice na zadanou délku | subst ('dotaz podregistru', 5, 5) vede k 'dotazu' |
rtrim (řetězec X) | Tětiva | Vrací řetězec bez pravých úvodních mezer | Výsledkem rtrim ('Hello') je 'Hello' |
ltrim (řetězec X) | Tětiva | Vrací řetězec bez zbylých mezer | ltrim ('Hello') výsledky v 'Hello' |
zpětný (řetězec X) | Tětiva | Vrací obrácený řetězec X | reverzní („ahoj“) vede k „olleh“ |
rpad (řetězec X, int, řetězec) | Tětiva | Vrací pravý polstrovaný řetězec s 'pad' na délku | rpad ('Ahoj', 3, 'Ahoj') výsledky v 'Ahoj ahoj ahoj |
lpad (řetězec X, int, řetězec) | Tětiva | Vrací levý polstrovaný řetězec s 'pad' na délku | lpad ('Ahoj', 3, 'Ahoj') výsledky v 'Ahoj Ahoj Ahoj Ahoj' |
split (řetězec X, řetězec pat) | Pole | Po rozdělení řetězce kolem zadaného vzoru vrátí řadu řetězců | rozdělení („A, B, C, D“, „, “) vede k výsledkům („A“, B ', „C“, „D“) |
délka (řetězec X) | Celé číslo | Vrací délku řetězce X | délka („Bigdata“) vede k 7 |
concat (řetězec X, řetězec Y) | Tětiva | Vrací zřetězený řetězec X a Y | concat ('Hello', 'World') vyústí v 'HelloWorld' |
2. Matematické funkce
Používá se k použití matematických operací, jako je zaoblení, strop, podlaha atd. Místo vytváření UDF.
Název funkce | Typ vrácení | Popis | Příklad |
kolo (dvojité X) | Dvojnásobek | Vrací zaokrouhlenou hodnotu X | kolo (29.5) výsledky v 30 |
kolo (dvojité X, Int d) | Dvojnásobek | Vrací zaokrouhlenou hodnotu X na desetinná místa | kolo (29.3456, 2) výsledky v 29.34 |
strop (double X) | Dvojnásobek | Vrací minimální hodnotu BIGINT, která je rovna nebo větší než X | strop (20, 5555) vede k 21 |
podlaha (dvojitá X) | Dvojnásobek | Vrací maximální hodnotu BIGINT rovnou nebo větší než X | strop (20, 5555) vede k 20 |
rand () | Dvojnásobek | Vrací náhodná čísla mezi 0 a 9 | rand () má za následek rand (0-9) |
abs (dvojité X) | Dvojnásobek | Vrací absolutní hodnotu čísla X | abs (-25) výsledky v 25 |
pow (double X, double Y) | Dvojnásobek | Vrací hodnotu X zvýšenou na sílu Y | prášek (2, 3) vede k 8 |
exp (double X) | Dvojnásobek | Vrací hodnotu exponentu X | exp (2) výsledky v 7.389 |
3. Podmíněné funkce
Používá se ke kontrole výrazu na hodnotu True nebo False a vrací odpovídající výsledky.
Název funkce | Typ vrácení | Popis | Příklad |
isnull (X) | Boolean | Vrací PRAVDA, pokud X je NULL jinak nepravdivé | isnull ('NULL') se vrací PRAVDA |
isnotnull (X) | Boolean | Vrací PRAVDA, pokud X není NULL jinak nepravdivé | isnotnull ('NULL') se vrací FALSE |
nvl (arg X, arg Y) | Tětiva | Vrací arg Y, pokud arg X je NULL, jinak vrací arg X | nvl ('NULL', 'Value is Null') výsledky v 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Pokud je testovací podmínka pravdivá, vrátí hodnotu True a jinak hodnotu False nebo Null | if (2 = 2, 'True', 'False') |
koalesce (X, Y) | (Žádný) | Vrátí první nenulové hodnoty ze seznamu (Mám o tom pochybnosti - vrátí úplně první hodnotu nebo všechny null hodnoty?) | koalesce (null, null, null, 1, 5, null, null, 6) výsledky v 1 |
4. Funkce data
Používá se k provádění manipulací s daty a převodů typu data.
Název funkce | Typ vrácení | Popis | Příklad |
dnešní datum | datum | Vrací aktuální datum provedení dotazu | current_date () vrací dnešní datum |
unix_timestamp () | BigInt | Vrací aktuální unixovou časovou značku provádění dotazu v sekundách | unix_timestamp () vrací aktuální unixové časové razítko |
rok (datum řetězce) | Int | Vrací roční část data | rok (1994-11-24) se vrací 1994 |
čtvrtletí (řetězec datum) | Int | Vrací čtvrtinu roku roku | čtvrtletí ('1994-11-24') se vrací 4 |
měsíc (řetězec datum) | Int | Vrací měsíční část data | měsíc ('1994-11-24') se vrací 11 |
hodina (řetězec datum) | Int | Vrací hodinovou část časové značky | hodina (1994-11-24 12:45:23 ') vrací 12 |
minuta (datum řetězce) | Int | Vrací minutovou část časové značky | rok (1994-11-24 12:45:23 ') vrátí 45 |
k datu() | Tětiva | Vrací datovou část řetězce časových razítek | to_date () vrací část data |
date_sub (datum řetězce, int dny) | Tětiva | Vrátí odečtení počtu dní do data | date_sub ('1994-11-24', 20) vrátí '1994-11-04' |
months_between (date1, date2) | Dvojnásobek | Vrací počet měsíců mezi datem1 a datem2 (měsíce nebo žádný den?) | months_between ('1994-11-24', '1994-11-04') se vrací 20 |
5. Funkce kolekce
Používá se pro transformaci a načítání částí typů kolekce, jako je mapa, pole atd.
Název funkce | Typ vrácení | Popis | Příklad |
velikost (mapa) | Int | Vrací celkový počet prvků v mapě | size ('a': 2, 'b': 6)) vrátí 2 |
velikost (pole) | Int | Vrací celkový počet prvků v poli | size (1, 3, 4, 7)) vrátí 4 |
array_contains (array, value) | Boolean | Pokud pole obsahuje hodnotu, vrátí hodnotu true | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) vrátí PRAVDA |
map_keys (mapa) | Pole | Vrací neuspořádané pole klíčů mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) vrací ('b', 'c', 'a') |
map_valuess (mapa) | Pole | Vrací neuspořádané pole hodnot mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) vrací (1, 6, 2) |
sort_array (pole) | Pole | Vrací seřazené pole daného pole | sort_array ((1, 3, 9, 8, 5, 4, 7)) návraty (1, 3, 4, 5, 7, 8, 9) |
Závěr
Zatím jsme diskutovali o různých vestavěných funkcích v Úlu. Ve srovnání s MapReduce je Hive pohodlnější a šetří čas. Každý, kdo má základní znalosti SQL, může snadno psát HQL, spíše než složité MapReduce programy pro zpracování dat.
Doporučené články
Toto je průvodce vestavěnými funkcemi Úlu. Zde diskutujeme vestavěné funkce, které jsou předdefinované a snadno dostupné pro použití v Úlu. Další informace naleznete také v následujícím článku -
- Funkce úlu String
- Funkce úlu
- Příkazy úlu
- Architektura úlu
- Hive Order By
- Instalace podregistru
- Vestavěné funkce Pythonu