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.