Introduktion till Hive Inbyggda funktioner
Funktioner är byggda för att utföra olika analytiska krav och operationer som matematiska, logiska, aritmetiska och relationella, på enorma datasätt och tabeller. Funktioner används när vi måste använda liknande operationer flera gånger. I denna avancerade BigData-värld blir det svårt att hantera och bearbeta enorma datamängder att skriva MapReduce-program. Så, Hive Query Language (HQL) introducerades ovanpå Apache Hadoop i oktober 2010, med vilka vi enkelt kan köra frågor, liknande SQL. HQL: er konverteras ytterligare internt till Mapreduce-program för att ge utgångarna. I det här ämnet kommer vi att diskutera Hive inbyggda funktioner.
Hivefunktioner kategoriseras i stort sett i två:
- Inbyggda funktioner
- Användardefinierade funktioner
Inbyggda Hive-funktioner
Inbyggda funktioner är fördefinierade och lätt tillgängliga att använda i Hive. De kategoriseras enligt nedan:
1. Strängfunktioner
Används för strängmanipulationer och transformation.
Funktionsnamn | Returtyp | Beskrivning | Exempel |
substr (sträng, int, int) | Sträng | Den returnerar en sträng från den angivna startpositionen till angiven längd | substr ('Hivefråga', 5, 5) resulterar i 'fråga' |
rtrim (sträng X) | Sträng | Den returnerar en sträng utan höger ledande mellanslag | rtrim ('Hej') resulterar i 'Hej' |
ltrim (sträng X) | Sträng | Den returnerar en sträng utan vänster ledande mellanslag | ltrim ('Hej') resulterar i 'Hej' |
omvänd (sträng X) | Sträng | Det returnerar en omvänd sträng av X | omvänd ('hej') resulterar i 'olleh' |
rpad (sträng X, int, sträng) | Sträng | Den returnerar en höger vadderad sträng med 'pad' till en längd av | rpad ("Hej", 3, "hej") resulterar i "Hej hej hej hej" |
lpad (sträng X, int, sträng) | Sträng | Den returnerar en vänster vadderad sträng med "pad" till en längd på | lpad ('Hej', 3, 'Hej') resulterar i 'Hej Hej Hej Hej' |
split (string X, string pat) | Array | Den returnerar en rad strängar efter att strängen har delats runt det angivna mönstret | split ("A, B, C, D", ", ") resulterar i ('A', B ', ' C ', ' D ') |
längd (sträng X) | Heltal | Den returnerar längden på sträng X | längd ('Bigdata') resulterar i 7 |
concat (sträng X, sträng Y) | Sträng | Det returnerar en sammanlänkad sträng av både X och Y | concat ('Hej', 'Värld') resulterar i 'HelloWorld' |
2. Matematiska funktioner
Används för att tillämpa matematiska operationer som avrundning, tak, golv etc. istället för att skapa UDF: er.
Funktionsnamn | Returtyp | Beskrivning | Exempel |
runda (dubbel X) | Dubbel | Det returnerar det avrundade värdet på X | omgång (29, 5) resulterar i 30 |
runda (dubbel X, Int d) | Dubbel | Det returnerar det avrundade värdet på X till d decimaler | omgång (29.3456, 2) resulterar i 29.34 |
tak (dubbel X) | Dubbel | Det returnerar ett minimum BIGINT-värde som är lika med eller större än X | tak (20.5555) resulterar i 21 |
golv (dubbel X) | Dubbel | Det ger ett maximalt BIGINT-värde som är lika med eller större än X | tak (20.5555) resulterar i 20 |
rand() | Dubbel | Det ger slumpmässiga nummer mellan 0 till 9 | rand () resulterar i rand (0-9) |
abs (dubbel X) | Dubbel | Det returnerar absolutvärdet för siffran X | abs (-25) resulterar i 25 |
pow (dubbel X, dubbel Y) | Dubbel | Det returnerar X-värde höjt till Y-effekten | pow (2, 3) resulterar i 8 |
exp (dubbel X) | Dubbel | Det returnerar exponentvärdet för X | exp (2) resulterar i 7.389 |
3. Villkorliga funktioner
Används för att kontrollera ett uttryck för True eller False och ger motsvarande resultat.
Funktionsnamn | Returtyp | Beskrivning | Exempel |
isnull (X) | Boolean | Det returnerar SANT om X är NULL annars falsk | isnull ('NULL') returnerar i SANT |
isnotnull (X) | Boolean | Det returnerar SANT om X inte är NULL annars falskt | isnotnull ('NULL') returnerar i FALSE |
nvl (arg X, arg Y) | Sträng | Den returnerar arg Y om arg X är NULL annars return arg arg | nvl ('NULL', 'Value is Null') resulterar i 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Det returnerar sant när testvillkoret är sant och falskt eller nollt på annat sätt | if (2 = 2, 'True', 'False') |
coalesce (X, Y) | (Några) | Det returnerar de första icke-nollvärdena från listan (Jag tvivlar på detta - kommer det att returnera det allra första värdet eller alla icke nollvärden?) | coalesce (null, null, null, 1, 5, null, null, 6) resulterar i 1 |
4. Datumfunktioner
Används för att utföra datummanipulationer och konvertering av datumtyp.
Funktionsnamn | Returtyp | Beskrivning | Exempel |
dagens datum | Datum | Det returnerar det aktuella datumet för frågetillverkning | aktuell_datum () returnerar dagens datum |
unix_timestamp () | bigint | Det returnerar den aktuella unix-tidsstämpeln för körning av frågan på några sekunder | unix_timestamp () returnerar aktuell unix-tidsstämpel |
år (strängdatum) | int | Det returnerar en del av ett datum | år (1994-11-24) returnerar 1994 |
kvartal (strängdatum) | int | Det returnerar kvartalet av ett datum | kvartal ('1994-11-24') returnerar 4 |
månad (strängdatum) | int | Det returnerar månadens del av ett datum | månad ('1994-11-24') returnerar 11 |
timme (strängdatum) | int | Det returnerar timdelsdelen av tidsstämpeln | hour ('1994-11-24 12:45:23') returnerar 12 |
minut (strängdatum) | int | Det returnerar minutdelen av tidsstämpeln | år ('1994-11-24 12:45:23') returnerar 45 |
to_date () | Sträng | Det returnerar datumdelen av tidsstämpelsträngen | to_date () returnerar datumdel |
date_sub (strängdatum, int-dagar) | Sträng | Det returnerar subtraktion av antalet dagar till datumet | date_sub ('1994-11-24', 20) returnerar '1994-11-04' |
months_between (datum1, datum2) | Dubbel | Det returnerar antalet månader mellan datum1 och datum2 (månader eller inga dagar?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') returnerar 20 |
5. Samlingsfunktion
Används för att transformera och hämta delar av samlingstyper som karta, array etc.
Funktionsnamn | Returtyp | Beskrivning | Exempel |
storlek (karta) | int | Det returnerar det totala antalet element på kartan | storlek (('a': 2, 'b': 6)) returnerar 2 |
storlek (matris) | int | Det returnerar det totala antalet element i matrisen | storlek ((1, 3, 4, 7)) returnerar 4 |
array_contains (matris, värde) | Boolean | Det returnerar sant om matrisen innehåller värdet | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) returnerar SANT |
map_keys (karta) | Array | Det returnerar en oordnad matris med nycklar på kartan | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerar ('b', 'c', 'a') |
map_valuess (karta) | Array | Det returnerar ett oordnat antal värden på kartan | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerar (1, 6, 2) |
sort_array (matris) | Array | Det returnerar en sorterad matris av den givna matrisen | sort_array ((1, 3, 9, 8, 5, 4, 7)) returnerar (1, 3, 4, 5, 7, 8, 9) |
Slutsats
Hittills har vi diskuterat olika inbyggda funktioner i Hive. Jämfört med MapReduce är Hive mer bekvämt och tidsbesparande. Alla som har grundläggande SQL-kunskaper kan enkelt skriva HQL: er snarare än komplicerade MapReduce-program för databehandling.
Rekommenderade artiklar
Detta är en guide till Hive inbyggda funktioner. Här diskuterar vi de inbyggda funktionerna som är fördefinierade och lätt tillgängliga att använda i Hive. Du kan också titta på följande artikel för att lära dig mer -
- Hive strängfunktioner
- Hive-funktion
- Hive-kommandon
- Hive Arkitektur
- Hive Order by
- Hiveinstallation
- Python inbyggda funktioner