Ú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:

  1. Vestavěné funkce
  2. 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 funkceTyp vráceníPopisPříklad
subst (string, int, int)TětivaVrací řetězec ze zadané počáteční pozice na zadanou délkusubst ('dotaz podregistru', 5, 5) vede k 'dotazu'
rtrim (řetězec X)TětivaVrací řetězec bez pravých úvodních mezerVýsledkem rtrim ('Hello') je 'Hello'
ltrim (řetězec X)TětivaVrací řetězec bez zbylých mezerltrim ('Hello') výsledky v 'Hello'
zpětný (řetězec X)TětivaVrací obrácený řetězec Xreverzní („ahoj“) vede k „olleh“
rpad (řetězec X, int, řetězec)TětivaVrací pravý polstrovaný řetězec s 'pad' na délkurpad ('Ahoj', 3, 'Ahoj') výsledky v 'Ahoj ahoj ahoj
lpad (řetězec X, int, řetězec)TětivaVrací levý polstrovaný řetězec s 'pad' na délkulpad ('Ahoj', 3, 'Ahoj') výsledky v 'Ahoj Ahoj Ahoj Ahoj'
split (řetězec X, řetězec pat)PolePo 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é čísloVrací délku řetězce Xdélka („Bigdata“) vede k 7
concat (řetězec X, řetězec Y)TětivaVrací zřetězený řetězec X a Yconcat ('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 funkceTyp vráceníPopisPříklad
kolo (dvojité X)DvojnásobekVrací zaokrouhlenou hodnotu Xkolo (29.5) výsledky v 30
kolo (dvojité X, Int d)DvojnásobekVrací zaokrouhlenou hodnotu X na desetinná místakolo (29.3456, 2) výsledky v 29.34
strop (double X)DvojnásobekVrací minimální hodnotu BIGINT, která je rovna nebo větší než Xstrop (20, 5555) vede k 21
podlaha (dvojitá X)DvojnásobekVrací maximální hodnotu BIGINT rovnou nebo větší než Xstrop (20, 5555) vede k 20
rand ()DvojnásobekVrací náhodná čísla mezi 0 a 9rand () má za následek rand (0-9)
abs (dvojité X)DvojnásobekVrací absolutní hodnotu čísla Xabs (-25) výsledky v 25
pow (double X, double Y)DvojnásobekVrací hodnotu X zvýšenou na sílu Yprášek (2, 3) vede k 8
exp (double X)DvojnásobekVrací hodnotu exponentu Xexp (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 funkceTyp vráceníPopisPříklad
isnull (X)BooleanVrací PRAVDA, pokud X je NULL jinak nepravdivéisnull ('NULL') se vrací PRAVDA
isnotnull (X)BooleanVrací PRAVDA, pokud X není NULL jinak nepravdivéisnotnull ('NULL') se vrací FALSE
nvl (arg X, arg Y)TětivaVrací arg Y, pokud arg X je NULL, jinak vrací arg Xnvl ('NULL', 'Value is Null') výsledky v 'Value is Null'
if (Boolean testCondition, T valueTrue, T valueFalseOrNull)TPokud je testovací podmínka pravdivá, vrátí hodnotu True a jinak hodnotu False nebo Nullif (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 funkceTyp vráceníPopisPříklad
dnešní datumdatumVrací aktuální datum provedení dotazucurrent_date () vrací dnešní datum
unix_timestamp ()BigIntVrací aktuální unixovou časovou značku provádění dotazu v sekundáchunix_timestamp () vrací aktuální unixové časové razítko
rok (datum řetězce)IntVrací roční část datarok (1994-11-24) se vrací 1994
čtvrtletí (řetězec datum)IntVrací čtvrtinu roku rokučtvrtletí ('1994-11-24') se vrací 4
měsíc (řetězec datum)IntVrací měsíční část dataměsíc ('1994-11-24') se vrací 11
hodina (řetězec datum)IntVrací hodinovou část časové značkyhodina (1994-11-24 12:45:23 ') vrací 12
minuta (datum řetězce)IntVrací minutovou část časové značkyrok (1994-11-24 12:45:23 ') vrátí 45
k datu()TětivaVrací datovou část řetězce časových razítekto_date () vrací část data
date_sub (datum řetězce, int dny)TětivaVrátí odečtení počtu dní do datadate_sub ('1994-11-24', 20) vrátí '1994-11-04'
months_between (date1, date2)DvojnásobekVrací 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 funkceTyp vráceníPopisPříklad
velikost (mapa)IntVrací celkový počet prvků v mapěsize ('a': 2, 'b': 6)) vrátí 2
velikost (pole)IntVrací celkový počet prvků v polisize (1, 3, 4, 7)) vrátí 4
array_contains (array, value)BooleanPokud pole obsahuje hodnotu, vrátí hodnotu truearray_contains ((1, 3, 9, 8, 5, 4, 7), 5) vrátí PRAVDA
map_keys (mapa)PoleVrací neuspořádané pole klíčů mapymap_keys (('a': 2, 'b': 6, 'c': 1)) vrací ('b', 'c', 'a')
map_valuess (mapa)PoleVrací neuspořádané pole hodnot mapymap_keys (('a': 2, 'b': 6, 'c': 1)) vrací (1, 6, 2)
sort_array (pole)PoleVrací seřazené pole daného polesort_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 -

  1. Funkce úlu String
  2. Funkce úlu
  3. Příkazy úlu
  4. Architektura úlu
  5. Hive Order By
  6. Instalace podregistru
  7. Vestavěné funkce Pythonu

Kategorie: