Introducere în funcțiile încorporate din stup
Funcțiile sunt construite pentru a efectua diferite cerințe și operații analitice precum matematica, logica, aritmetica și relațională, pe seturi de date și tabele uriașe. Funcțiile sunt utilizate atunci când trebuie să reutilizăm de mai multe ori operațiuni similare. În această lume avansată BigData, pentru a gestiona și procesa seturi de date uriașe, scrierea programelor MapReduce devine dificilă. Deci, Hive Query Language (HQL) a fost introdus în topul Apache Hadoop în octombrie 2010, folosind care putem executa cu ușurință interogări, similare cu cele SQL. HQL-urile sunt convertite în continuare în programe Mapreduce pentru a produce rezultatele. În acest subiect, vom discuta despre funcțiile încorporate stupului.
Funcțiile stupului sunt clasificate, în linii mari, în două:
- Funcții încorporate
- Funcții definite de utilizator
Funcții încorporate ale stupului
Funcțiile încorporate sunt predefinite și sunt ușor disponibile pentru a fi utilizate în stup. Acestea sunt clasificate ca mai jos:
1. Funcții cu șiruri
Folosit pentru manipulări și transformări cu coarde.
Numele funcției | Tip retur | Descriere | Exemplu |
substr (string, int, int) | Şir | Întoarce un șir din poziția de început specificată la lungimea specificată | substr („interogare stupă”, 5, 5) are ca rezultat „interogare” |
rtrim (șirul X) | Şir | Întoarce un șir fără spații de conducere dreapta | rtrim ('Hello') are ca rezultat 'Hello' |
ltrim (șirul X) | Şir | Întoarce un șir fără spații de conducere stângi | ltrim ('Hello') are ca rezultat 'Hello' |
invers (șir X) | Şir | Se returnează un șir invers de X | invers („salut”) rezultă în „olleh” |
rpad (șir X, int, șir) | Şir | Întoarce un șir captusit din dreapta cu „pad” la o lungime de | rpad ('Hello', 3, 'hi') rezultă în 'Hello hi hi hi' |
lpad (șir X, int, șir) | Şir | Întoarce un șir captusit stâng cu „pad” la o lungime de | lpad ('Hello', 3, 'Hi') are ca rezultat 'Hi Hi Hi Hello Hello' |
split (string X, string pat) | mulțime | Acesta returnează o serie de șiruri după împărțirea șirului în modelul specificat | split ("A, B, C, D", ", ") rezultă în ("A", B ", " C ", " D ") |
lungime (șir X) | Întreg | Se returnează lungimea șirului X | lungimea („Bigdata”) rezultă în 7 |
concat (șirul X, șirul Y) | Şir | Se întoarce un șir concatenat atât de X cât și de Y | concat ('Hello', 'World') rezultă în 'HelloWorld' |
2. Funcții matematice
Folosit pentru aplicarea operațiunilor matematice precum rotunjirea, tavanul, podeaua etc., în loc să creeze UDF-uri.
Numele funcției | Tip retur | Descriere | Exemplu |
rotund (dublu X) | Dubla | Returnează valoarea rotunjită a lui X | runda (29, 5) rezultă în 30 |
rotund (dublu X, Int d) | Dubla | Întoarce valoarea rotunjită a lui X în z zecimale | runda (29.3456, 2) are ca rezultat 29.34 |
plafonul (dublu X) | Dubla | Returnează o valoare minimă BIGINT care este egală sau mai mare decât X | plafonul (20.5555) rezultă în 21 |
podea (dublu X) | Dubla | Întoarce o valoare maximă BIGINT care este egală sau mai mare decât X | plafonul (20.5555) rezultă în 20 |
rand () | Dubla | Întoarce numere aleatorii între 0 și 9 | rand () rezultate în rand (0-9) |
abs (dublu X) | Dubla | Se returnează valoarea absolută a numărului X | abs (-25) rezultă în 25 |
pow (dublu X, dublu Y) | Dubla | Acesta returnează valoarea X ridicată la puterea Y | pow (2, 3) are ca rezultat 8 |
exp (dublu X) | Dubla | Întoarce valoarea exponentă a lui X | exp (2) are ca rezultat 7.389 |
3. Funcții condiționale
Folosit pentru a verifica o expresie pentru True sau False și returnează rezultatele corespunzătoare.
Numele funcției | Tip retur | Descriere | Exemplu |
isnull (X) | boolean | Se returnează TRUE dacă X este NULL altceva fals | isnull („NULL”) se întoarce în TRUE |
isnotnull (X) | boolean | Se returnează TRUE dacă X nu este NULL altceva fals | isnotnull ('NULL') revine în FALSE |
nvl (arg X, arg Y) | Şir | Se returnează arg Y dacă arg X este NULL altceva se returnează arg X | nvl („NULL”, „Value is Null”) rezultă în „Value is Null” |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Se returnează True atunci când starea testului este adevărată și False sau Null altfel | if (2 = 2, 'True', 'False') |
Coalesce (X, Y) | (Orice) | Întoarce primele valori nule din listă (Am o îndoială în acest sens - va întoarce chiar prima valoare sau toate valorile nule?) | coalesce (nul, nul, nul, 1, 5, nul, nul, 6) rezultă în 1 |
4. Funcțiile datei
Folosit pentru efectuarea manipulărilor de date și a conversiilor de tip date.
Numele funcției | Tip retur | Descriere | Exemplu |
data curenta | Data | Acesta returnează data curentă a executării interogării | current_date () returnează data de astăzi |
UNIX_TIMESTAMP () | BIGINT | Întoarce momentul actual al unix al executării interogărilor în câteva secunde | unix_timestamp () returnează momentul actual unix |
anul (data șirului) | Int | Se întoarce o parte din an a unei date | anul („1994-11-24”) revine 1994 |
trimestrul (data șirului) | Int | Se întoarce sfertul anului într-o dată | trimestrul („1994-11-24”) returnează 4 |
luna (data șirului) | Int | Se întoarce o parte a lunii a unei date | luna ('1994-11-24') returnează 11 |
ora (data șirului) | Int | Se întoarce o parte din oră de timp | ora ('1994-11-24 12:45:23') returnează 12 |
minut (data șirului) | Int | Se întoarce o parte din minutul de timp | anul ('1994-11-24 12:45:23') returnează 45 |
la zi() | Şir | Acesta returnează o parte a datei șirului de timp | to_date () returnează partea datei |
date_sub (data șirului, zile int) | Şir | Acesta returnează scăderea numărului de zile la dată | data_sub ('1994-11-24', 20) returnează '1994-11-04' |
months_between (date1, DATE2) | Dubla | Se returnează numărul de luni între data1 și data2 (luni sau nr de zile?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') returnează 20 |
5. Funcția de colectare
Folosit pentru transformarea și preluarea părților din tipurile de colecție precum hartă, tablă etc.
Numele funcției | Tip retur | Descriere | Exemplu |
size (hartă) | Int | Acesta returnează numărul total de elemente din hartă | size (('a': 2, 'b': 6)) returnează 2 |
Dimensiunea (array) | Int | Acesta returnează numărul total de elemente din tablă | size ((1, 3, 4, 7)) returnează 4 |
array_contains (matrice, valoare) | boolean | Se returnează adevărat dacă tabloul conține valoarea | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) returnează TRUE |
map_keys (hartă) | mulțime | Întoarce o serie neordonată de chei ale hărții | map_keys (('a': 2, 'b': 6, 'c': 1)) returnează ('b', 'c', 'a') |
map_valuess (hartă) | mulțime | Întoarce o serie neordonată de valori ale hărții | map_keys (('a': 2, 'b': 6, 'c': 1)) returnează (1, 6, 2) |
sort_array (array) | mulțime | Întoarce un set sortat al tabloului dat | sort_array ((1, 3, 9, 8, 5, 4, 7)) returnează (1, 3, 4, 5, 7, 8, 9) |
Concluzie
Până acum am discutat despre diferite funcții încorporate în Hive. În comparație cu MapReduce, stupul este mai convenabil și economisește timp. Oricine are cunoștințe de bază SQL poate scrie cu ușurință HQL-uri, mai degrabă decât programe complicate MapReduce pentru procesarea datelor.
Articole recomandate
Acesta este un ghid pentru funcțiile încorporate din stup. Aici vom discuta despre funcțiile încorporate, care sunt predefinite și ușor disponibile pentru a fi utilizate în stup. De asemenea, puteți consulta articolul următor pentru a afla mai multe -
- Funcțiile șirului de stup
- Funcția stupului
- Comenzile stupului
- Arhitectura stupului
- Ordinul stupului Prin
- Instalarea stupului
- Funcții încorporate Python