Funkcja ula: wbudowana & UDF (funkcje zdefiniowane przez użytkownika)

Spisie treści:

Anonim

Funkcje są budowane w określonym celu, aby wykonywać operacje matematyczne, arytmetyczne, logiczne i relacyjne na operandach nazw kolumn tabeli.

Wbudowane funkcje

Są to funkcje, które są już dostępne w Hive. Najpierw musimy sprawdzić wymagania aplikacji, a następnie możemy wykorzystać te wbudowane funkcje w naszych aplikacjach. Możemy wywołać te funkcje bezpośrednio w naszej aplikacji.

Składnia i typy są wymienione w następnej sekcji.

Rodzaje funkcji wbudowanych w HIVE

  • Funkcje kolekcji
  • Funkcje daty
  • Funkcje matematyczne
  • Funkcje warunkowe
  • Funkcje łańcuchowe
  • Różne Funkcje

Funkcje kolekcji:

Te funkcje są używane w przypadku kolekcji. Kolekcje oznaczają grupowanie elementów i zwracanie pojedynczych lub tablic elementów zależne od typu zwracanego podanego w nazwie funkcji.

Typ zwrotu Nazwa funkcji Opis
INT rozmiar (Mapa ) Pobierze i poda numer komponentów w typie mapy
INT rozmiar (Array ) Pobierze i poda liczbę elementów w typie tablicy
Array Map_keys (Mapa ) Pobierze i poda tablicę zawierającą klucze mapy wejściowej. Tutaj tablica jest nieuporządkowana
Array Map_values ​​(Mapa ) Pobierze i poda tablicę zawierającą wartości mapy wejściowej. Tutaj tablica jest nieuporządkowana
Array Sort_array (Array ) sortuje tablicę wejściową w kolejności rosnącej według tablicy i elementów i zwraca ją

Funkcje daty:

Są one używane do wykonywania manipulacji datami i konwersji typów dat z jednego typu na inny:

Nazwa funkcji Typ zwrotu Opis
Unix_Timestamp () BigInt W ciągu kilku sekund otrzymamy aktualny znacznik czasu Uniksa
To_date (sygnatura czasowa ciągu) strunowy Pobierze i poda część daty z ciągu znacznika czasu:
rok (data ciągu) INT Pobierze i poda rokowi część daty lub ciągu znacznika czasu
kwartał (data / znacznik czasu / ciąg znaków) INT Pobierze i poda kwartał roku jako datę, znacznik czasu lub ciąg z zakresu od 1 do 4
miesiąc (string data) INT Poda miesiącowi część daty lub ciągu znacznika czasu
godzina (string data) INT Pobierze i poda godzinę znacznika czasu
minuta (string data) INT Pobierze i poda minutę znacznika czasu
Date_sub (data początkowa ciągu, dni int) strunowy Pobierze i da odjęcie liczby dni do daty rozpoczęcia
Bieżąca data data Pobierze i poda aktualną datę na początku oceny zapytania
LAST _day (string data) strunowy Pobierze i poda ostatni dzień miesiąca, do którego należy data
trunc (data ciągu, format ciągu) strunowy Pobierze i poda datę obciętą do jednostki określonej przez format. Obsługiwane formaty w tym: MIESIĄC / MIESIĄC / MM, ROK / RRRR / RRRR.

Funkcje matematyczne :

Te funkcje są używane do operacji matematycznych. Zamiast tworzyć pliki UDF, mamy wbudowane funkcje matematyczne w Hive.

Nazwa funkcji Typ zwrotu Opis
okrągły (DOUBLE X) PODWÓJNIE Pobierze i zwróci zaokrągloną BIGINT wartość X
okrągły (DOUBLE X, INT d) PODWÓJNIE Pobierze i zwróci X zaokrąglone do d miejsc dziesiętnych
bround (DOUBLE X) PODWÓJNIE Pobierze i zwróci zaokrągloną BIGINT wartość X przy użyciu trybu zaokrąglania HALF_EVEN
piętro (DOUBLE X) BIGINT Pobierze i zwróci maksymalną wartość BIGINT, która jest równa lub mniejsza od wartości X.
sufit (DOUBLE a), sufit (DOUBLE a) BIGINT Pobierze i zwróci minimalną wartość BIGINT, która jest równa lub większa niż wartość X.
rand (), rand (ziarno INT) PODWÓJNIE Pobierze i zwróci liczbę losową, która jest równomiernie rozłożona od 0 do 1

Funkcje warunkowe:

Te funkcje służą do sprawdzania wartości warunkowych.

Nazwa funkcji Typ zwrotu Opis
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Pobiera i zwraca wartość True, gdy warunek testu ma wartość true, w przeciwnym razie zwraca wartość False lub Null.
ISNULL (X) Boolean Pobierze i da prawdę, jeśli X ma wartość NULL, a fałsz w przeciwnym razie.
ISNOTNULL (X) Boolean Pobierze i da prawdę, jeśli X nie ma wartości NULL, a fałsz w przeciwnym razie.

Funkcje ciągów:

Operacje na ciągach znaków i operacje na napisach te funkcje można wywołać.

Nazwa funkcji Typ zwrotu Opis
rewers (ciąg X) strunowy Daje odwrócony ciąg X
rpad (string str, int length, string pad) strunowy Pobierze i da str, który jest wypełniony po prawej stronie dopełnieniem do długości (wartość całkowita)
rtrim (ciąg X) strunowy Pobierze i zwróci ciąg będący wynikiem obcinania spacji od końca (po prawej stronie) X Na przykład rtrim ('results') daje w wyniku 'wyniki'
spacja (INT n) strunowy Pobierze i da ciąg n spacji.
split (STRING str, STRING pat) szyk Dzieli pasek wokół pat (pat jest wyrażeniem regularnym).
Str_to_map (tekst [, separator1, separator2]) map Dzieli tekst na pary klucz-wartość za pomocą dwóch separatorów.

UDF (funkcje zdefiniowane przez użytkownika):

W Hive użytkownicy mogą definiować własne funkcje, aby spełnić określone wymagania klienta. Są one znane jako UDF w Hive. Funkcje zdefiniowane przez użytkownika napisane w języku Java dla określonych modułów.

Niektóre z funkcji UDF są specjalnie zaprojektowane do ponownego wykorzystania kodu w strukturach aplikacji. Deweloper opracuje te funkcje w Javie i zintegruje te UDF z Hive.

Podczas wykonywania zapytania programista może bezpośrednio używać kodu, a funkcje UDF zwracają dane wyjściowe zgodnie z zadaniami zdefiniowanymi przez użytkownika. Zapewni wysoką wydajność w zakresie kodowania i wykonywania.

Na przykład dla tworzenia ciągów znaków nie mamy żadnej predefiniowanej funkcji w Hive, w tym celu możemy napisać UDF rdzenia w Javie. Wszędzie tam, gdzie potrzebujemy funkcjonalności Stem, możemy bezpośrednio nazwać to UDF Stem w Hive.

Tutaj funkcjonalność rdzenia oznacza wyprowadzanie słów ze słów źródłowych. To tak, jakby algorytm rymowania redukował słowa „życzenia”, „życzenia” i „życzenia” do pierwotnego słowa „życzenie”. Do realizacji tego typu funkcjonalności możemy napisać UDF w java i zintegrować się z Hive.

W zależności od przypadków użycia, UDF można zapisać, będzie akceptować i generować różne liczby wartości wejściowych i wyjściowych.

Ogólny typ UDF akceptuje pojedynczą wartość wejściową i generuje jedną wartość wyjściową. Jeśli funkcja UDF została użyta w zapytaniu, wówczas funkcja UDF zostanie wywołana raz dla każdego wiersza w zestawie danych wynikowych.

W przeciwnym razie może przyjąć grupę wartości jako dane wejściowe i zwrócić również pojedynczą wartość wyjściową.