Hive-funktion: Indbygget & UDF (brugerdefinerede funktioner)

Indholdsfortegnelse:

Anonim

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å.