Hive-functies: ingebouwd en UDF [door gebruiker gedefinieerde functies] voorbeeld


Functies worden gebouwd voor een specifiek doel om wiskundige, rekenkundige, logische en relationele bewerkingen uit te voeren op de operanden van tabelkolomnamen.

Ingebouwde functies

Dit zijn functies die al beschikbaar zijn in Hive. Eerst moeten we de applicatievereisten controleren, en dan kunnen we deze ingebouwde functies in onze applicaties gebruiken. We kunnen deze functies rechtstreeks in onze applicatie oproepen.

De syntaxis en typen worden in de volgende sectie besproken.

Soorten ingebouwde functies in HIVE

  • Verzamelfuncties
  • Datum Functies
  • Wiskundige functies
  • Voorwaardelijke functies
  • String-functies
  • Diversen Functies

Verzamelfuncties

Deze functies worden gebruikt voor verzamelingen. Verzamelingen betekenen dat de groepering van elementen en het retourneren van enkele elementen of een reeks elementen afhankelijk is van het retourtype dat wordt vermeld in de functienaam.

Retourtype Functie Naam Beschrijving
INT maat (kaart ) Het zal het componentennummer in het kaarttype ophalen en weergeven
INT maat (matrix ) Het zal het elementennummer in het arraytype ophalen en weergeven
Array Kaartsleutels(Kaart ) Het zal een array ophalen en weergeven met de sleutels van de invoerkaart. Hier is de array ongeordend
Array Kaartwaarden(Kaart ) Het zal een array ophalen en weergeven met de waarden van de invoerkaart. Hier is de array ongeordend
Array Sorteerarray(Array ) sorteert de invoerarray in oplopende volgorde van array en elementen en retourneert deze

Datum Functies

Deze worden gebruikt om datummanipulaties en conversie van datumtypen van het ene type naar het andere uit te voeren:

Functie Naam Retourtype Beschrijving
Unix_Tijdstempel() bigint We zullen actueel worden Unix tijdstempel in seconden
Tot_datum(tekenreeks tijdstempel) snaar Het zal het datumgedeelte van een tijdstempelreeks ophalen en weergeven:
jaar(tekenreeksdatum) INT Het haalt het jaargedeelte van een datum of een tijdstempelreeks op en geeft het weer
kwartaal(datum/tijdstempel/tekenreeks) INT Het haalt het kwartaal van het jaar op en geeft het weer voor een datum, tijdstempel of tekenreeks in het bereik 1 tot 4
maand(tekenreeksdatum) INT Het geeft het maandgedeelte van een datum of een tijdstempelreeks
uur(tekenreeksdatum) INT Het haalt het uur van de tijdstempel op en geeft het weer
minuut(tekenreeksdatum) INT Het haalt de minuut van de tijdstempel op en geeft deze weer
Date_sub(startdatum tekenreeks, int dagen) snaar Het wordt opgehaald en geeft een aftrekking van het aantal dagen tot de startdatum
Huidige datum gegevens Het zal de huidige datum ophalen en weergeven aan het begin van de query-evaluatie
LAATSTE _dag(tekenreeksdatum) snaar Het haalt de laatste dag op van de maand waartoe de datum behoort en geeft deze weer
trunc(tekenreeksdatum, tekenreeksformaat) snaar Het zal de datum ophalen en weergeven, afgekapt tot de eenheid die door het formaat is opgegeven.

Ondersteunde formaten hierin:

MAAND/MAAND/MM, JAAR/JJJJ/JJ.

Wiskundige functies

Deze functies worden gebruikt voor Wiskundig Operaties. In plaats van UDFs te maken, hebben we enkele ingebouwde wiskundige functies in Hive.

Functie Naam Retourtype Beschrijving
rond(DUBBEL X) DUBBELE Het haalt de afgeronde BIGINT-waarde van X op en retourneert deze
rond(DUBBEL X, INT d) DUBBELE Het zal X ophalen en retourneren, afgerond op d decimalen
brood(DUBBEL X) DUBBELE Het haalt de afgeronde BIGINT-waarde van X op en retourneert deze met behulp van de afrondingsmodus HALF_EVEN
vloer (DUBBEL X) BIGINT Het haalt de maximale BIGINT-waarde op en retourneert deze die gelijk is aan of kleiner is dan de X-waarde
plafond(DUBBEL a), plafond(DUBBEL a) BIGINT Het haalt de minimale BIGINT-waarde op die gelijk is aan of groter is dan de X-waarde en retourneert deze
rand(), rand(INT-zaad) DUBBELE Er wordt een willekeurig getal opgehaald en geretourneerd dat uniform is verdeeld van 0 tot 1

Voorwaardelijke functies

Deze functies worden gebruikt voor controles van voorwaardelijke waarden.

Functie Naam Retourtype Beschrijving
if(Booleaanse testConditie, T-waardeWaar, T-waardeFalseOrNull) T Het zal de waarde True ophalen en geven wanneer
Testconditie is waar,
geeft anders de waarde False of Null.
IS NIET( X) Boolean Het haalt op en geeft true als X NULL is en anders false.
ISNIETUL(X ) Boolean Het haalt op en geeft true als X niet NULL is en anders false.

String-functies

Deze functies kunnen worden aangeroepen voor stringmanipulaties en stringbewerkingen.

Functie Naam Retourtype Beschrijving
omgekeerd(tekenreeks X) snaar Het geeft de omgekeerde reeks X
rpad(string str, int lengte, string pad) snaar Het zal str ophalen en geven, die rechts is opgevuld met pad tot een lengte van lengte (gehele waarde)
rtrim(tekenreeks X) snaar Het haalt de string op en retourneert deze die het resultaat is van het bijsnijden van spaties aan het einde (rechterkant) van X
Bij voorbeeld, rtrim('resultaten') resulteert in 'resultaten'
spatie(INT n) snaar Het zal een reeks van n spaties ophalen en geven.
split(STRING str, STRING pat) reeks Splitst str rond pat (pat is een reguliere expressie).
Str_naar_kaart(tekst[, scheidingsteken1, scheidingsteken2]) kaart Het splitst tekst op in sleutel-waardeparen met behulp van twee scheidingstekens.

UDF's (door de gebruiker gedefinieerde functies)

In Hive kunnen de gebruikers eigen functies definiëren om aan bepaalde klantvereisten te voldoen. Deze staan ​​in Hive bekend als UDF's. Door de gebruiker gedefinieerde functies geschreven Java voor specifieke modules.

Sommige UDF's zijn specifiek ontworpen voor de herbruikbaarheid van code in applicatieframeworks. De ontwikkelaar zal deze functies ontwikkelen in Java en integreer deze UDF's met de Hive.

Tijdens de uitvoering van de query kan de ontwikkelaar de code rechtstreeks gebruiken, en UDF's retourneren uitvoer volgens de door de gebruiker gedefinieerde taken. Het levert hoge prestaties op het gebied van codering en uitvoering.

Voor string-stamming hebben we bijvoorbeeld geen vooraf gedefinieerde functie in Hive. Hiervoor kunnen we stam-UDF inschrijven Java. Waar we ook Stem-functionaliteit nodig hebben, kunnen we deze Stem-UDF rechtstreeks in Hive aanroepen.

Stamfunctionaliteit betekent hier het afleiden van woorden uit de stamwoorden. Het is alsof het stamalgoritme de woorden ‘wensen’, ‘gewenst’ en ‘wensen’ reduceert tot het grondwoord ‘wens’. Voor het uitvoeren van dit soort functionaliteit kunnen we UDF schrijven Java en ermee integreren Bijenkorf.

Afhankelijk van de use cases kunnen de UDF's worden geschreven. Het zal verschillende aantallen invoer- en uitvoerwaarden accepteren en produceren.

Het algemene type UDF accepteert een enkele invoerwaarde en produceert een enkele uitvoerwaarde. Als de UDF in de query wordt gebruikt, wordt UDF één keer aangeroepen voor elke rij in de resultaatgegevensset.

Op de andere manier kan het een groep waarden als invoer accepteren en ook een enkele uitvoerwaarde retourneren.