Funktioner er bygget til et bestemt formål til at udføre operationer som matematisk, aritmetisk, logisk og relationel på operanderne af tabelkolonnavne.
Indbyggede funktioner
Dette er funktioner, der allerede er tilgængelige i Hive. Først skal vi kontrollere applikationskravet, og derefter kan vi bruge denne indbyggede funktion i vores applikationer. Vi kan kalde disse funktioner direkte i vores applikation.
Syntaksen og typerne er nævnt i det følgende afsnit.
Typer af indbyggede funktioner i HIVE
- Samlingsfunktioner
- Datofunktioner
- Matematiske funktioner
- Betingede funktioner
- Strengfunktioner
- Diverse Funktioner
Samlingsfunktioner:
Disse funktioner bruges til samlinger. Samlinger betyder gruppering af elementer og returnering af enkelt- eller array af elementer afhænger af returtype nævnt i funktionsnavn.
Returtype | Funktionsnavn | Beskrivelse |
---|---|---|
INT | størrelse (kort | Det henter og giver komponentnummeret i korttypen |
INT | størrelse (Array | Det henter og giver elementets nummer i array-typen |
Array | Map_keys (Map | Det henter og giver et array, der indeholder tasterne på inputkortet. Her er arrayet uordnet |
Array | Kortværdier (kort | Det henter og giver en matrix, der indeholder værdierne for input-kortet. Her er arrayet uordnet |
Array | Sort_array (Array | sorterer input array i stigende rækkefølge af array og elementer og returnerer det |
Datofunktioner:
Disse bruges til at udføre datomanipulationer og konvertering af datatyper fra en type til en anden type:
Funktionsnavn | Returtype | Beskrivelse |
---|---|---|
Unix_Timestamp () | BigInt | Vi får det aktuelle Unix-tidsstempel på få sekunder |
To_date (streng tidsstempel) | snor | Det henter og giver datodelen af en tidsstempelstreng: |
år (streng dato) | INT | Det henter og giver året del af en dato eller en tidsstempelstreng |
kvartal (dato / tidsstempel / streng) | INT | Det henter og giver årets kvartal for en dato, tidsstempel eller streng i området 1 til 4 |
måned (streng dato) | INT | Det giver måneden en del af en dato eller en tidsstempelstreng |
time (streng dato) | INT | Det henter og giver timestemplets time |
minut (streng dato) | INT | Det henter og giver minut af tidsstemplet |
Date_sub (streng startdato, int dage) | snor | Det henter og giver subtraktion af antal dage til startdatoen |
Nuværende dato | dato | Det henter og giver den aktuelle dato i starten af forespørgselsevalueringen |
SISTE _dag (strengdato) | snor | Det henter og giver den sidste dag i den måned, som datoen tilhører |
trunc (streng dato, streng format) | snor | Det henter og giver dato trunkeret til den enhed, der er angivet af formatet. Understøttede formater i dette: MÅNED / MÅN / MM, ÅR / ÅÅÅÅ / ÅÅ. |
Matematiske funktioner :
Disse funktioner bruges til matematiske operationer. I stedet for at oprette UDF'er har vi nogle indbyggede matematiske funktioner i Hive.
Funktionsnavn | Returtype | Beskrivelse |
---|---|---|
runde (DOUBLE X) | DOBBELT | Det henter og returnerer den afrundede BIGINT-værdi på X |
runde (DOUBLE X, INT d) | DOBBELT | Det henter og returnerer X afrundet til d decimaler |
bround (DOUBLE X) | DOBBELT | Det henter og returnerer den afrundede BIGINT-værdi af X ved hjælp af HALF_EVEN afrundingstilstand |
etage (DOBBELT X) | STOR | Det henter og returnerer den maksimale BIGINT-værdi, der er lig med eller mindre end X-værdien |
loft (DOBBELT a), loft (DOBBELT a) | STOR | Det henter og returnerer den mindste BIGINT-værdi, der er lig med eller større end X-værdien |
rand (), rand (INT frø) | DOBBELT | Det henter og returnerer et tilfældigt tal, der fordeles ensartet fra 0 til 1 |
Betingede funktioner:
Disse funktioner bruges til kontrol af betingede værdier.
Funktionsnavn | Returtype | Beskrivelse |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Det henter og giver værdi Sand, når testtilstand er sand, giver værdi Falsk eller Nul ellers. |
ISNULL (X) | Boolsk | Det henter og giver sandhed, hvis X ellers er NULL og falsk. |
ISNOTNULL (X) | Boolsk | Det henter og giver sandhed, hvis X ikke er NULL og ellers falsk. |
Strengfunktioner:
Strengmanipulationer og strengoperationer disse funktioner kan kaldes.
Funktionsnavn | Returtype | Beskrivelse |
---|---|---|
omvendt (streng X) | snor | Det giver den omvendte streng af X |
rpad (streng str, int længde, streng pad) | snor | Det henter og giver str, som er polstret med pad til en længde af længde (heltal) |
rtrim (streng X) | snor | Det henter og returnerer strengen, der skyldes trimming mellemrum fra slutningen (højre side) af X F.eks. Resulterer rtrim ('resultater') i 'resultater' |
plads (INT n) | snor | Det henter og giver en streng af n mellemrum. |
split (STRING str, STRING pat) | array | Opdeler str omkring pat (pat er et regelmæssigt udtryk). |
Str_to_map (tekst [, afgrænser1, afgrænser2]) | kort | Det opdeler tekst i nøgleværdipar ved hjælp af to afgrænsere. |
UDF'er (brugerdefinerede funktioner):
I Hive kan brugerne definere egne funktioner for at imødekomme visse kundekrav. Disse er kendt som UDF'er i Hive. Brugerdefinerede funktioner skrevet i Java til bestemte moduler.
Nogle af UDF'er er specielt designet til genanvendelighed af kode i applikationsrammer. Udvikleren vil udvikle disse funktioner i Java og integrere disse UDF'er med Hive.
Under Query-udførelsen kan udvikleren bruge koden direkte, og UDF'er returnerer output i henhold til de brugerdefinerede opgaver. Det vil give høj ydeevne med hensyn til kodning og udførelse.
For eksempel for strengstammer har vi ingen foruddefineret funktion i Hive, for dette kan vi skrive stamme UDF i Java. Uanset hvor vi har brug for stammefunktionalitet, kan vi direkte kalde denne stamme UDF i Hive.
Her betyder stammefunktionalitet at udlede ord fra dets rodord. Det er som om algoritme, der stammer, reducerer ordene "ønsker", "ønsket" og "ønsker" til rodordet "ønske." For at udføre denne type funktionalitet kan vi skrive UDF i java og integrere med Hive.
Afhængigt af anvendelsestilfælde kan UDF'erne skrives, det accepterer og producerer forskellige antal input- og outputværdier.
Den generelle type UDF accepterer en enkelt inputværdi og producerer en enkelt outputværdi. Hvis UDF'en bruges i forespørgslen, kaldes UDF en gang for hver række i resultatdatasættet.
På den anden måde kan den acceptere en gruppe værdier som input og returnere en enkelt outputværdi også.