Funzioni Hive: esempio integrato e UDF [funzioni definite dall'utente].
Le funzioni sono create per uno scopo specifico per eseguire operazioni matematiche, aritmetiche, logiche e relazionali sugli operandi dei nomi delle colonne della tabella.
Funzioni integrate
Queste sono funzioni già disponibili in Hive. Innanzitutto, dobbiamo verificare i requisiti dell'applicazione, quindi possiamo utilizzare queste funzioni integrate nelle nostre applicazioni. Possiamo chiamare queste funzioni direttamente nella nostra applicazione.
La sintassi e i tipi sono menzionati nella sezione seguente.
Tipi di funzioni integrate in HIVE
- Funzioni di raccolta
- Funzioni data
- Funzioni matematiche
- Funzioni condizionali
- Funzioni di stringa
- Varie Funzioni
Funzioni di raccolta
Queste funzioni vengono utilizzate per le raccolte. Le raccolte indicano che il raggruppamento di elementi e la restituzione di elementi singoli o di matrici dipende dal tipo restituito menzionato nel nome della funzione.
Tipo di ritorno | Nome della funzione | Descrizione |
---|---|---|
INT | dimensione (mappa ) | Recupererà e fornirà il numero dei componenti nel tipo di mappa |
INT | dimensione(Array ) | Recupererà e fornirà il numero degli elementi nel tipo di array |
Vettore | Map_keys(Mappa ) | Recupererà e fornirà un array contenente le chiavi della mappa di input. Qui l'array non è ordinato |
Vettore | Valori_mappa(Mappa ) | Recupererà e fornirà un array contenente i valori della mappa di input. Qui l'array non è ordinato |
Vettore | Ordina_array(Array ) | ordina l'array di input in ordine crescente di array ed elementi e lo restituisce |
Funzioni data
Questi vengono utilizzati per eseguire manipolazioni di date e conversioni di tipi di data da un tipo a un altro:
Nome della funzione | Tipo di ritorno | Descrizione |
---|---|---|
Unix_Timestamp() | BigInt | Ci aggiorneremo Unix timestamp in secondi |
To_date(stringa timestamp) | stringa | Recupererà e fornirà la parte della data di una stringa di timestamp: |
anno(data stringa) | INT | Recupererà e fornirà la parte dell'anno di una data o una stringa di timestamp |
trimestre(data/timestamp/stringa) | INT | Recupererà e fornirà il trimestre dell'anno per una data, un timestamp o una stringa compresa tra 1 e 4 |
mese(data stringa) | INT | Fornirà la parte del mese di una data o una stringa di timestamp |
ora(data stringa) | INT | Recupererà e fornirà l'ora del timestamp |
minuto(stringa data) | INT | Recupererà e fornirà il minuto del timestamp |
Date_sub(stringa data di inizio, int giorni) | stringa | Recupererà e fornirà la sottrazione del numero di giorni alla data di inizio |
Data odierna | quando | Recupererà e fornirà la data corrente all'inizio della valutazione della query |
LAST_day(stringa data) | stringa | Recupererà e restituirà l'ultimo giorno del mese a cui appartiene la data |
trunc(data stringa, formato stringa) | stringa | Recupererà e fornirà la data troncata all'unità specificata dal formato.
Formati supportati in questo: MESE/LUN/MM, ANNO/AAAA/AA. |
Funzioni matematiche
Queste funzioni vengono utilizzate per la matematica Operazioni. Invece di creare UDF, abbiamo alcune funzioni matematiche integrate in Hive.
Nome della funzione | Tipo di ritorno | Descrizione |
---|---|---|
rotondo(DOPPIO X) | RADDOPPIARE | Recupererà e restituirà il valore BIGINT arrotondato di X |
round(DOPPIO X, INT d) | RADDOPPIARE | Recupererà e restituirà X arrotondato a d cifre decimali |
largo(DOPPIO X) | RADDOPPIARE | Recupererà e restituirà il valore BIGINT arrotondato di X utilizzando la modalità di arrotondamento HALF_EVEN |
pavimento(DOPPIO X) | GRANDE | Recupererà e restituirà il valore BIGINT massimo uguale o inferiore al valore X |
ceil(DOPPIO a), ceiling(DOPPIO a) | GRANDE | Recupererà e restituirà il valore BIGINT minimo uguale o maggiore del valore X |
rand(), rand(seme INT) | RADDOPPIARE | Recupererà e restituirà un numero casuale distribuito uniformemente da 0 a 1 |
Funzioni condizionali
Queste funzioni vengono utilizzate per i controlli dei valori condizionali.
Nome della funzione | Tipo di ritorno | Descrizione |
---|---|---|
if(Condizione test booleana, valore TVero, valore TFalsoONullo) | T | Recupererà e darà valore True quando La condizione di test è vera, altrimenti restituisce il valore False o Null. |
VALORE NULL( X) | Booleano | Verrà recuperato e restituito true se X è NULL e false altrimenti. |
ISNOTNULL(X ) | Booleano | Verrà recuperato e restituito true se X non è NULL e false altrimenti. |
Funzioni di stringa
Manipolazioni di stringhe e operazioni sulle stringhe possono essere chiamate queste funzioni.
Nome della funzione | Tipo di ritorno | Descrizione |
---|---|---|
inverso(stringa X) | stringa | Fornirà la stringa invertita di X |
rpad(string str, lunghezza int, string pad) | stringa | Recupererà e fornirà str, che è riempito a destra con pad per una lunghezza pari a length(valore intero) |
rtrim(stringa X) | stringa | Recupererà e restituirà la stringa risultante dal taglio degli spazi dalla fine (lato destro) di X Per esempio, rtrim('risultati') restituisce 'risultati' |
spazio(INT n) | stringa | Recupererà e fornirà una stringa di n spazi. |
dividi(STRING str, STRING pat) | schieramento | Divide str attorno a pat (pat è un'espressione regolare). |
Str_to_map(testo[, delimitatore1, delimitatore2]) | carta geografica | Dividerà il testo in coppie chiave-valore utilizzando due delimitatori. |
UDF (funzioni definite dall'utente)
In Hive, gli utenti possono definire le proprie funzioni per soddisfare determinati requisiti del cliente. Questi sono conosciuti come UDF in Hive. Funzioni definite dall'utente scritte in Java per moduli specifici.
Alcune UDF sono progettate specificamente per la riutilizzabilità del codice nei framework applicativi. Lo sviluppatore svilupperà queste funzioni in Java e integrare tali UDF con Hive.
Durante l'esecuzione della query, lo sviluppatore può utilizzare direttamente il codice e le UDF restituiranno output in base alle attività definite dall'utente. Fornirà prestazioni elevate in termini di codifica ed esecuzione.
Ad esempio, per la radice delle stringhe non abbiamo alcuna funzione predefinita in Hive. Per questo, possiamo scrivere stem UDF in JavaOvunque necessitiamo della funzionalità Stem, possiamo chiamare direttamente questa UDF Stem in Hive.
Qui la funzionalità della radice significa derivare le parole dalle sue parole radice. È come se l’algoritmo di stemming riducesse le parole “wishing”, “wished” e “wishes” alla radice della parola “wish”. Per eseguire questo tipo di funzionalità, possiamo scrivere UDF Java e integrarlo con Alveare.
A seconda dei casi d'uso, è possibile scrivere le UDF. Accetterà e produrrà diversi numeri di valori di input e output.
Il tipo generale di UDF accetterà un singolo valore di input e produrrà un singolo valore di output. Se nella query viene utilizzata la UDF, la UDF verrà chiamata una volta per ogni riga nel set di dati dei risultati.
D'altro canto, può accettare un gruppo di valori come input e restituire anche un singolo valore di output.