Hive-funktioner: Indbygget & UDF [Brugerdefinerede funktioner] Eksempel


Funktioner er bygget til et specifikt formål til at udføre operationer som matematiske, aritmetiske, logiske og relationelle på operanderne af tabelkolonnenavne.

Indbyggede funktioner

Det er funktioner, der allerede er tilgængelige i Hive. Først skal vi tjekke applikationskravet, og derefter kan vi bruge disse indbyggede funktioner i vores applikationer. Disse funktioner kan vi kalde direkte i vores applikation.

Syntaksen og typerne er nævnt i det følgende afsnit.

Typer af indbyggede funktioner i HIVE

  • Indsamlingsfunktioner
  • Dato funktioner
  • Matematiske funktioner
  • Betingede funktioner
  • Strengfunktioner
  • Diverse Funktioner

Indsamlingsfunktioner

Disse funktioner bruges til samlinger. Samlinger betyder, at grupperingen af ​​elementer og returnering af enkelte eller matrix af elementer afhænger af returtypen nævnt i funktionsnavnet.

Returtype Funktionsnavn Produktbeskrivelse
INT størrelse (Kort ) Den henter og giver komponenternes nummer i korttypen
INT størrelse (Array ) Det vil hente og give elementernes nummer i array-typen
Array Map_keys(Kort ) Det henter og giver et array, der indeholder nøglerne til inputkortet. Her er array i uordnet
Array Map_values(Kort ) Det henter og giver et array, der indeholder værdierne for inputkortet. Her er array i uordnet
Array Sort_array(Array ) sorterer input-arrayet i stigende rækkefølge af array og elementer og returnerer det

Dato funktioner

Disse bruges til at udføre datomanipulationer og konvertering af datotyper fra én type til en anden type:

Funktionsnavn Returtype Produktbeskrivelse
Unix_Timestamp() BIGINT Vi bliver aktuelle Unix tidsstempel i sekunder
To_date(streng tidsstempel) streng Det vil hente og give datodelen af ​​en tidsstempelstreng:
år (strengdato) INT Den henter og giver året en del af en dato- eller tidsstempelstreng
kvartal (dato/tidsstempel/streng) INT Den henter og giver årets kvartal for en dato, et tidsstempel eller en streng i intervallet 1 til 4
måned (strengdato) INT Det vil give måneden en del af en dato eller et tidsstempel
time (strengdato) INT Det vil hente og angive timen for tidsstemplet
minut (strengdato) INT Det vil hente og angive minut af tidsstemplet
Date_sub(streng startdato, int dage) streng Det vil hente og giver subtraktion af antal dage til startdato
Nuværende dato dato Den henter og giver den aktuelle dato ved starten af ​​forespørgselsevalueringen
SIDSTE _dag(strengdato) streng Den henter og giver den sidste dag i måneden, som datoen tilhører
trunc(strengdato, strengformat) streng Det henter og giver dato afkortet til den enhed, der er angivet af formatet.

Understøttede formater i denne:

MÅNED/MAN/MM, ÅR/ÅÅÅÅ/ÅÅ.

Matematiske funktioner

Disse funktioner bruges til matematik Operationer. I stedet for at skabe UDF'er har vi nogle indbyggede matematiske funktioner i Hive.

Funktionsnavn Returtype Produktbeskrivelse
runde (DOUBLE X) DOBBELT Den henter og returnerer den afrundede BIGINT-værdi af X
runde (DOUBLE X, INT d) DOBBELT Den henter og returnerer X afrundet til d decimaler
rund (DOUBLE X) DOBBELT Den henter og returnerer den afrundede BIGINT værdi af X ved brug af HALF_EVEN afrundingstilstand
gulv (DOUBLE X) STORT Den henter og returnerer den maksimale BIGINT-værdi, der er lig med eller mindre end X-værdi
loft(DOUBLE a), loft(DOUBLE a) STORT Den 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 vil hente og returnere et tilfældigt tal, der er fordelt ensartet fra 0 til 1

Betingede funktioner

Disse funktioner bruges til kontrol af betingede værdier.

Funktionsnavn Returtype Produktbeskrivelse
if(Boolesk testBetingelse, T-værdiTrue, T-værdiFalseEllerNul) T Det vil hente og giver værdi Sand når
Testtilstanden er sand,
giver værdi Falsk Eller Null ellers.
ISNULL( X) Boolesk Den henter og giver sand, hvis X er NULL og ellers falsk.
ISNOTNULL(X) Boolesk Den henter og giver sand, hvis X ikke er NULL og ellers falsk.

Strengfunktioner

Strengmanipulationer og strengoperationer kan disse funktioner kaldes.

Funktionsnavn Returtype Produktbeskrivelse
omvendt (streng X) streng Det vil give den omvendte streng af X
rpad (streng str, int længde, streng pad) streng Det henter og giver str, som er højrepolstret med pad til en længde af længde (heltalsværdi)
rtrim(streng X) streng Den henter og returnerer strengen, der er resultatet af trimning af mellemrum fra enden (højre side) af X
For eksempel, rtrim(' resultater ') resulterer i 'resultater'
mellemrum (INT n) streng Det vil hente og giver en streng på n mellemrum.
split(STRING str, STRING pat) matrix Splitter str om pat (pat er et regulært udtryk).
Str_to_map(tekst[, delimiter1, delimiter2]) kort Det vil opdele tekst i nøgle-værdi-par ved hjælp af to skilletegn.

UDF'er (brugerdefinerede funktioner)

I Hive kan brugerne definere egne funktioner for at opfylde bestemte klientkrav. Disse er kendt som UDF'er i Hive. Brugerdefinerede funktioner skrevet ind Java for specifikke 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 udførelsen af ​​forespørgslen kan udvikleren bruge koden direkte, og UDF'er vil returnere output i henhold til de brugerdefinerede opgaver. Det vil give høj ydeevne med hensyn til kodning og udførelse.

For eksempel, for strengstamming har vi ikke nogen foruddefineret funktion i Hive. Til dette kan vi skrive stamme UDF i Java. Uanset hvor vi har brug for Stem-funktionalitet, kan vi direkte kalde denne Stem UDF i Hive.

Her betyder stamfunktionalitet at udlede ord fra dets rodord. Det er ligesom stammealgoritmen reducerer ordene "ønsker", "ønsker" og "ønsker" til grundordet "ønske". For at udføre denne type funktionalitet kan vi skrive UDF ind Java og integrere det med Hive.

Afhængigt af anvendelsesmulighederne kan UDF'erne skrives. Det vil acceptere og producere forskellige antal input- og outputværdier.

Den generelle type UDF vil acceptere en enkelt inputværdi og producere en enkelt outputværdi. Hvis UDF'en bruges i forespørgslen, vil UDF blive kaldt én gang for hver række i resultatdatasættet.

På den anden måde kan den acceptere en gruppe værdier som input og også returnere en enkelt outputværdi.

Opsummer dette indlæg med: