Stropu funkcija: iebūvēta & UDF (lietotāja definētas funkcijas)

Satura rādītājs:

Anonim

Funkcijas ir izveidotas noteiktam mērķim, lai veiktu tādas darbības kā matemātiskās, aritmētiskās, loģiskās un relāciju tabulas kolonnu nosaukumu operandos.

Iebūvētās funkcijas

Šīs ir funkcijas, kas jau ir pieejamas stropā. Pirmkārt, mums jāpārbauda lietojumprogrammu prasības, un pēc tam mēs varam izmantot šīs iebūvētās funkcijas savās lietojumprogrammās. Šīs funkcijas mēs varam izsaukt tieši mūsu lietojumprogrammā.

Sintakse un veidi ir minēti nākamajā sadaļā.

HIVE iebūvēto funkciju veidi

  • Kolekcijas funkcijas
  • Datuma funkcijas
  • Matemātiskās funkcijas
  • Nosacītās funkcijas
  • Stīgu funkcijas
  • Dažādi Funkcijas

Kolekcijas funkcijas:

Šīs funkcijas tiek izmantotas kolekcijām. Kolekcijas nozīmē elementu grupēšanu, un atsevišķu vai elementu masīva atgriešana ir atkarīga no funkcijas nosaukumā minētā atgriešanās veida.

Atgriešanas veids Funkcijas nosaukums Apraksts
INT izmērs (karte ) Tas ienes un piešķir komponentiem numuru kartes tipā
INT izmērs (masīvs ) Tas iegūs un piešķirs elementiem masīva tipā numuru
Masīvs Map_keys (Karte ) Tas iegūs un dos masīvu, kurā ir ievadītās kartes taustiņi. Šeit masīvs ir nesakārtots
Masīvs Map_values ​​(Karte ) Tas iegūs un dos masīvu, kurā ir ievadītās kartes vērtības. Šeit masīvs ir nesakārtots
Masīvs Sort_array (masīvs ) sakārto ievades masīvu masīva un elementu augošā secībā un atdod to

Datuma funkcijas:

Tos izmanto, lai veiktu manipulācijas ar datumu un datuma veidu pārveidošanu no viena veida uz citu:

Funkcijas nosaukums Atgriešanas veids Apraksts
Unix_Timestamp () BigInt Mēs saņemsim pašreizējo Unix laika zīmogu dažu sekunžu laikā
To_date (virknes laika zīmogs) virkne Tas ienāks un piešķirs datuma daļu no laika zīmoga virknes:
gads (virknes datums) INT Tas iegūs datumu vai laika zīmoga virkni un piešķirs tai gadu
ceturksnis (datums / laika zīmogs / virkne) INT Tas iegūs datumu, laika zīmogu vai virkni gada ceturksnī diapazonā no 1 līdz 4
mēnesis (virknes datums) INT Tas mēnesim piešķirs datuma daļu vai laika zīmoga virkni
stunda (virknes datums) INT Tas ienāks un norādīs laika zīmoga stundu
minūte (virknes datums) INT Tas iegūs un piešķirs laika zīmoga minūti
Date_sub (virknes sākuma datums, int dienas) virkne Tas iegūs un atņems dienu skaita atņemšanu līdz sākuma datumam
Šodienas datums datums Tas iegūs un norādīs pašreizējo datumu vaicājuma novērtēšanas sākumā
LAST _day (virknes datums) virkne Tas iegūs un norādīs tā mēneša pēdējo dienu, kuram šis datums pieder
trunc (virknes datums, virknes formāts) virkne Tas ienes un piešķir datumu saīsinātu formātā norādītajai vienībai. Atbalstītie formāti: MONTH / MON / MM, YEAR / GGGG / GG.

Matemātiskās funkcijas :

Šīs funkcijas tiek izmantotas matemātiskām operācijām. Tā vietā, lai izveidotu UDF, mums stropā ir dažas iebūvētas matemātiskās funkcijas.

Funkcijas nosaukums Atgriešanas veids Apraksts
apaļa (DOUBLE X) DUBULA Tas iegūs un atgriezīs X noapaļoto BIGINT vērtību
apaļa (DOUBLE X, INT d) DUBULA Tas iegūs un atgriezīs X noapaļotu līdz d zīmēm aiz komata
bround (DOUBLE X) DUBULA Izmantojot HALF_EVEN noapaļošanas režīmu, tā iegūs un atgriezīs X noapaļoto BIGINT vērtību
stāvs (DOUBLE X) BIGINT Tas iegūs un atgriezīs maksimālo BIGINT vērtību, kas ir vienāda vai mazāka par X vērtību
griesti (DOUBLE a), griesti (DOUBLE a) BIGINT Tas iegūs un atgriezīs minimālo BIGINT vērtību, kas ir vienāda vai lielāka par X vērtību
rand (), rand (INT sēklas) DUBULA Tas iegūs un atgriezīs nejaušu skaitli, kas vienmērīgi tiek sadalīts no 0 līdz 1

Nosacītās funkcijas:

Šīs funkcijas tiek izmantotas nosacīto vērtību pārbaudei.

Funkcijas nosaukums Atgriešanas veids Apraksts
if (Būla testa nosacījums, T vērtība Patiesība, T vērtība FalseOrNull) T Tas saņems vērtību True, kad testa nosacījums ir patiess, citādi vērtību False or Null.
ISNULL (X) Būla Ja X ir NULL un nepatiesa citādi, tas tiks iegūts un būs patiess.
ISNOTNULL (X) Būla Tas iegūs un sniegs patiesību, ja X nav NULL un nepatiesa citādi.

Stīgu funkcijas:

Stīgu manipulācijas un virkņu operācijas šīs funkcijas var izsaukt.

Funkcijas nosaukums Atgriešanas veids Apraksts
reverss (X virkne) virkne Tas dos apgriezto X virkni
rpad (virknes str, int garums, virknes spilventiņš) virkne Tas iegūs un dod str, kas ir ar labo spilventiņu ar spilventiņu garuma garumā (vesela skaitļa vērtība)
rtrim (X virkne) virkne Tas ienes un atdos virkni, kas rodas atstarpes no X gala (labajā pusē). Piemēram , rtrim ('rezultāti') rada 'rezultātus'
atstarpe (INT n) virkne Tas ienes un piešķir virkni n atstarpes.
sadalīt (STRING str., STRING glāsts) masīvs Sadalās str ap pat (pat ir regulāra izteiksme).
Str_to_map (teksts [, atdalītājs1, atdalītājs2]) karte Tas sadalīs tekstu atslēgas vērtību pāros, izmantojot divus atdalītājus.

UDF (lietotāja definētas funkcijas):

Stropā lietotāji var definēt savas funkcijas, lai apmierinātu noteiktas klienta prasības. Tie ir pazīstami kā UDF stropā. Lietotāja definētas funkcijas, kas rakstītas Java valodā noteiktiem moduļiem.

Daži no UDF ir īpaši izstrādāti koda atkārtotai lietošanai lietojumprogrammu ietvaros. Izstrādātājs izstrādās šīs funkcijas Java un integrēs šos UDF ar stropu.

Vaicājuma izpildes laikā izstrādātājs var tieši izmantot kodu, un UDF atgriezīs izejas atbilstoši lietotāja definētajiem uzdevumiem. Tas nodrošinās augstu veiktspēju kodēšanas un izpildes ziņā.

Piemēram, stīgu izveidei mums nav nevienas iepriekš definētas funkcijas stropā, tāpēc mēs varam rakstīt stumbra UDF Java valodā. Visur, kur mums nepieciešama stumbra funkcionalitāte, mēs varam tieši saukt šo stublāju par UDF stropā.

Šeit cilmes funkcionalitāte nozīmē vārdu atvasināšanu no saknes vārdiem. Tas ir kā algoritms, kas izriet no vārda "vēlas", "vēlējās" un "vēlmes", samazina vārdu "vēlēšanās". Lai veiktu šāda veida funkcionalitāti, mēs varam rakstīt UDF Java valodā un integrēt ar Hive.

Atkarībā no lietošanas gadījumiem, kad UDF var rakstīt, tas pieņems un radīs atšķirīgu ieejas un izejas vērtību skaitu.

Vispārējais UDF tips pieņems vienu ieejas vērtību un radīs vienu izejas vērtību. Ja vaicājumā tiek izmantots UDF, tad UDF tiks izsaukts reizi katrā rezultātu datu kopas rindā.

Citādi tas var pieņemt vērtību grupu kā ievadi un atgriezt arī vienas izejas vērtību.