Bijenkorffunctie: ingebouwd & UDF (door de gebruiker gedefinieerde functies)

Inhoudsopgave:

Anonim

Functies zijn gebouwd voor een specifiek doel om bewerkingen uit te voeren zoals wiskundig, rekenkundig, logisch en relationeel op de operanden van tabelkolomnamen.

Ingebouwde functies

Dit zijn functies die al beschikbaar zijn in Hive. Eerst moeten we de applicatie-eis 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 vermeld in de volgende sectie.

Typen ingebouwde functies in HIVE

  • Collectiefuncties
  • Datumfuncties
  • Wiskundige functies
  • Voorwaardelijke functies
  • String-functies
  • Misc. Functies

Verzamelfuncties:

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

Retourtype Functienaam Omschrijving
INT grootte (kaart ) Het zal het componentnummer in het kaarttype ophalen en geven
INT grootte (Array ) Het zal het nummer van de elementen in het array-type ophalen en geven
Matrix Map_keys (Kaart ) Het zal een array ophalen en geven die de sleutels van de invoertoewijzing bevat. Hier is de array ongeordend
Array Map_values ​​(Kaart ) Het zal een array ophalen en geven die de waarden van de invoertoewijzing bevat. Hier is de array ongeordend
Matrix Sort_array (Array ) sorteert de invoerarray in oplopende volgorde van array en elementen en retourneert deze

Datumfuncties:

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

Functienaam Retourtype Omschrijving
Unix_Timestamp () BigInt We krijgen binnen enkele seconden het huidige Unix-tijdstempel
To_date (tijdstempel tekenreeks) draad Het zal het datumgedeelte van een tijdstempeltekenreeks ophalen en geven:
jaar (tekenreeksdatum) INT Het zal het jaargedeelte van een datum- of tijdstempeltekenreeks ophalen en geven
kwartaal (datum / tijdstempel / tekenreeks) INT Het haalt het kwartaal van het jaar op en geeft het een datum, tijdstempel of tekenreeks in het bereik van 1 tot 4
maand (tekenreeksdatum) INT Het geeft het maandgedeelte van een datum of een tijdstempeltekenreeks
uur (tekenreeksdatum) INT Het zal het uur van de tijdstempel ophalen en geven
minuut (tekenreeksdatum) INT Het zal de minuut van het tijdstempel ophalen en geven
Date_sub (tekenreeks begindatum, int dagen) draad Het zal het aantal dagen ophalen en aftrekken tot de begindatum
Huidige datum datum Het haalt de huidige datum op en geeft deze aan het begin van de queryevaluatie
LAATSTE _dag (tekenreeksdatum) draad Het zal de laatste dag van de maand ophalen en geven waartoe de datum behoort
trunc (tekenreeksdatum, tekenreeksnotatie) draad Het zal de datum ophalen en geven die is afgekapt tot de eenheid die is opgegeven door het formaat. Ondersteunde formaten in dit: MAAND / MA / MM, JAAR / JJJJ / JJ.

Wiskundige functies :

Deze functies worden gebruikt voor wiskundige bewerkingen. In plaats van het maken vanUDF's, hebben we enkele ingebouwde wiskundige functies in Hive.

Functienaam Retourtype Omschrijving
rond (DUBBELE X) DUBBELE Het zal de afgeronde BIGINT-waarde van X ophalen en retourneren
ronde (DOUBLE X, INT d) DUBBELE Het haalt X op en retourneert deze afgerond op d decimalen
bround (DUBBELE X) DUBBELE Het zal de afgeronde BIGINT-waarde van X ophalen en retourneren met behulp van de afrondingsmodus HALF_EVEN
vloer (DOUBLE X) GROOT Het zal de maximale BIGINT-waarde ophalen en retourneren die gelijk is aan of kleiner is dan de X-waarde
plafond (DUBBEL a), plafond (DUBBEL a) GROOT Het zal de minimale BIGINT-waarde ophalen en retourneren die gelijk is aan of groter is dan de X-waarde
rand (), rand (INT zaad) DUBBELE Het zal een willekeurig getal ophalen en retourneren dat uniform is verdeeld van 0 tot 1

Voorwaardelijke functies:

Deze functies worden gebruikt voor voorwaardelijke waardencontroles.

Functienaam Retourtype Omschrijving
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Het zal de waarde True ophalen en geven als de testvoorwaarde waar is, anders wordt de waarde False of Null gegeven.
ISNULL (X) Boolean Het haalt true op en geeft true als X NULL is en anders false.
ISNOTNULL (X) Boolean Het zal true ophalen en geven als X niet NULL is en anders false.

String Functies:

Stringmanipulaties en stringbewerkingen deze functies kunnen worden aangeroepen.

Functienaam Retourtype Omschrijving
reverse (string X) draad Het geeft de omgekeerde reeks van X
rpad (string str, int length, string pad) draad Het zal str ophalen en geven, die rechts is opgevuld met pad tot een lengte van lengte (gehele waarde)
rtrim (tekenreeks X) draad Het zal halen en keert de reeks van de weggesneden ruimten van het uiteinde (rechts) X Bijvoorbeeld , rtrim (' results ') leidt tot' Resultaten
spatie (INT n) draad Het zal een reeks van n spaties ophalen en geven.
split (STRING str, STRING pat) array Splitst str rond pat (pat is een reguliere expressie).
Str_to_map (tekst [, delimiter1, delimiter2]) map Het splitst tekst in sleutel / waarde-paren 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 ​​bekend als UDF's in Hive. Door de gebruiker gedefinieerde functies geschreven in Java voor specifieke modules.

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

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

Voor stringstammen hebben we bijvoorbeeld geen voorgedefinieerde functie in Hive, hiervoor kunnen we stam UDF in Java schrijven. Overal waar we Stem-functionaliteit nodig hebben, kunnen we deze Stem in Hive direct UDF noemen.

Hier betekent stamfunctionaliteit woorden afleiden uit de basiswoorden. Het is alsof het stamalgoritme de woorden "wensen", "gewenst" en "wensen" reduceert tot het stamwoord "wens". Voor het uitvoeren van dit type functionaliteit kunnen we UDF in java schrijven en integreren met Hive.

Afhankelijk van de use-cases die de UDF's kunnen schrijven, accepteert en produceert deze verschillende aantallen invoer- en uitvoerwaarden.

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

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