Úvod do vstavaných funkcií
Funkcie sú zostavené tak, aby vykonávali rôzne analytické požiadavky a operácie, ako sú matematické, logické, aritmetické a relačné, na veľkých množinách údajov a tabuľkách. Funkcie sa používajú, keď musíme opakovane používať podobné operácie viackrát. V tomto pokročilom svete BigData, spracovanie a spracovanie obrovských množín údajov, sa písanie programov MapReduce stáva ťažké. Preto bol v októbri 2010 na vrchole Apache Hadoop zavedený Hive Query Language (HQL), pomocou ktorého môžeme ľahko spúšťať dotazy podobné SQL. HQL sa ďalej interne konvertujú na programy Mapreduce, aby poskytli výstupy. V tejto téme budeme diskutovať o vstavaných funkciách úľa.
Úľové funkcie sú všeobecne rozdelené do dvoch skupín:
- Vstavané funkcie
- Funkcie definované používateľom
Vstavané funkcie úľa
Vstavané funkcie sú preddefinované a ľahko dostupné na použitie v Úli. Sú rozdelené do nasledujúcich kategórií:
1. Reťazcové funkcie
Používa sa na manipuláciu s reťazcami a transformáciu.
Názov funkcie | Typ vrátenia | popis | príklad |
subst (string, int, int) | povrázok | Vracia reťazec zo zadanej počiatočnej polohy na zadanú dĺžku | subst ('dotaz úľa', 5, 5) vedie k 'dotazu' |
rtrim (reťazec X) | povrázok | Vracia reťazec bez pravých úvodných medzier | Výsledkom rtrim („Ahoj“) je „Ahoj“ |
ltrim (reťazec X) | povrázok | Vracia reťazec bez ľavých úvodných medzier | Výsledky ltrim („Ahoj“) vedú k „Ahoj“ |
reverzná (reťazec X) | povrázok | Vracia opačný reťazec X | výsledky reverznej („ahoj“) vedú k „olleh“ |
rpad (reťazec X, int, reťazec) | povrázok | Vráti pravý polstrovaný reťazec s „padom“ na dĺžku | Výsledok rpad („Ahoj“, 3, „ahoj“) vedie k „Ahoj ahoj ahoj ahoj“ |
lpad (reťazec X, int, reťazec) | povrázok | Vráti ľavú výplňovú šnúru s „padom“ na dĺžku | lpad ('Ahoj', 3, 'Ahoj') vedie k 'Ahoj Ahoj Ahoj Hello' |
split (string X, string pat) | rad | Po rozdelení reťazca okolo zadaného vzoru vráti rad reťazcov | výsledkom split („A, B, C, D“, „, “) sú výsledky („A“, B ', „C“, „D“) |
dĺžka (reťazec X) | celé číslo | Vracia dĺžku reťazca X | dĺžka („Bigdata“) vedie k 7 |
concat (reťazec X, reťazec Y) | povrázok | Vracia zreťazený reťazec X a Y | Výsledok concat ('Hello', 'World') vedie k HelloWorld |
2. Matematické funkcie
Používa sa na aplikáciu matematických operácií, ako sú zaoblenie, strop, podlaha atď., Namiesto vytvárania UDF.
Názov funkcie | Typ vrátenia | popis | príklad |
kolo (dvojité X) | dvojitý | Vráti zaokrúhlenú hodnotu X | kolo (29.5) výsledky v 30 |
kolo (dvojité X, Int d) | dvojitý | Vráti zaokrúhlenú hodnotu X na desatinné miesta | kolo (29.3456, 2) vedie k 29.34 |
strop (dvojitý X) | dvojitý | Vracia minimálnu hodnotu BIGINT, ktorá sa rovná alebo je väčšia ako X | strop (20, 5555) vedie k 21 |
podlaha (dvojitá X) | dvojitý | Vracia maximálnu hodnotu BIGINT, ktorá sa rovná alebo je väčšia ako X | strop (20, 5555) vedie k 20 |
rand () | dvojitý | Vracia náhodné čísla od 0 do 9 | rand () vedie k randu (0-9) |
abs (dvojité X) | dvojitý | Vracia absolútnu hodnotu čísla X | abs (-25) výsledky v 25 |
pow (double X, double Y) | dvojitý | Vracia hodnotu X zvýšenú na hodnotu Y | prášok (2, 3) vedie k 8 |
exp (dvojité X) | dvojitý | Vracia hodnotu exponentu X | exp (2) výsledky v 7.389 |
3. Podmienené funkcie
Používa sa na kontrolu výrazu True alebo False a vracia zodpovedajúce výsledky.
Názov funkcie | Typ vrátenia | popis | príklad |
IsNull (X) | boolean | Vráti hodnotu PRAVDA, ak X je NULL inak nepravdivé | isnull ('NULL') sa vracia v TRUE |
isnotnull (X) | boolean | Vráti hodnotu PRAVDA, ak X nie je NULL inak nepravdivé | isnotnull ('NULL') sa vracia v FALSE |
nvl (arg X, arg Y) | povrázok | Vracia arg Y, ak arg X je NULL, inak vracia arg X | nvl ('NULL', 'Value is Null') vedie k 'Value is Null' |
if (logický testCondition, T valueTrue, T valueFalseOrNull) | T | Vráti hodnotu True, keď sú podmienky testu pravdivé a False alebo Null inak | ak (2 = 2, „True“, „False“) |
COALESCE (X, Y) | (Akýkoľvek) | Vráti prvé nenulové hodnoty zo zoznamu (Mám o tom pochybnosti - vráti úplne prvú hodnotu alebo všetky null hodnoty?) | zlúčenie (null, null, null, 1, 5, null, null, 6) vedie k 1 |
4. Funkcie dátumu
Používa sa na vykonávanie manipulácií s dátumami a konverzií typu dátumu.
Názov funkcie | Typ vrátenia | popis | príklad |
aktuálny dátum | Dátum | Vracia aktuálny dátum vykonania dotazu | current_date () vracia dnešný dátum |
unix_timestamp () | BIGINT | Vráti aktuálnu časovú pečiatku vykonávania Unixu v sekundách | unix_timestamp () vracia aktuálnu časovú pečiatku unixu |
rok (reťazcový dátum) | Int | Vracia ročnú časť dátumu | rok („1994-11-24“) sa vracia v roku 1994 |
štvrťrok (reťazcový dátum) | Int | Vracia štvrtý štvrťrok roku | štvrťrok (1994-11-24), výnosy 4 |
mesiac (reťazcový dátum) | Int | Vráti mesačnú časť dátumu | mesiac (1994-11-24) sa vracia 11 |
hodina (reťazcový dátum) | Int | Vracia hodinovú časovú pečiatku | hodina (1994-11-24 12:45:23 ') sa vracia 12 |
minúta (reťazcový dátum) | Int | Vráti minútovú časť časovej pečiatky | rok (1994-11-24 12:45:23 ') sa vracia 45 |
randiť() | povrázok | Vracia dátumovú časť reťazca časových pečiatok | to_date () vracia dátumovú časť |
date_sub (reťazcový dátum, int dni) | povrázok | Vráti odpočítanie počtu dní do dátumu | date_sub ('1994-11-24', 20) vracia '1994-11-04' |
months_between (dátum 1, dátum 2) | dvojitý | Vracia počet mesiacov medzi dátumom1 a dátumom2 (mesiace alebo žiadny deň?) | months_between ('1994-11-24', '1994-11-04') sa vracia 20 |
5. Funkcia zberu
Používa sa na transformáciu a načítanie častí typov zbierok, ako je mapa, pole atď.
Názov funkcie | Typ vrátenia | popis | príklad |
size (mapa) | Int | Vracia celkový počet prvkov na mape | size ((a): 2, „b“: 6)) sa vracia 2 |
Veľkosť (array) | Int | Vracia celkový počet prvkov v poli | size (1, 3, 4, 7)) sa vracia 4 |
array_contains (pole, hodnota) | boolean | Vracia hodnotu true, ak pole obsahuje hodnotu | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) vracia TRUE |
map_keys (mapa) | rad | Vracia neusporiadané pole kľúčov mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) vracia ('b', 'c', 'a') |
map_valuess (mapa) | rad | Vracia neusporiadané pole hodnôt mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) návraty (1, 6, 2) |
sort_array (array) | rad | Vracia zoradené pole daného poľa | sort_array ((1, 3, 9, 8, 5, 4, 7)) sa vracia (1, 3, 4, 5, 7, 8, 9) |
záver
Zatiaľ sme diskutovali o rôznych vstavaných funkciách v Úli. V porovnaní s MapReduce je Hive pohodlnejší a šetrí čas. Každý, kto má základné znalosti jazyka SQL, môže namiesto spracovania komplikovaných programov MapReduce pre spracovanie údajov ľahko písať HQL.
Odporúčané články
Toto je sprievodca zabudovanými funkciami Úľa. Tu diskutujeme o vstavaných funkciách, ktoré sú preddefinované a ľahko dostupné na použitie v Úli. Viac informácií nájdete aj v nasledujúcom článku -
- Funkcie reťazcov úľa
- Funkcia úľa
- Príkazy úľa
- Architektúra úľa
- Usporiadať úľ podľa
- Inštalácia úľa
- Vstavané funkcie Pythonu