Funkcje Hive: Wbudowane i UDF [Funkcje zdefiniowane przez użytkownika] Przykład


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. Funkcje te możemy wywołać bezpośrednio w naszej aplikacji.

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

Rodzaje funkcji wbudowanych w gałęzi HIVE

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

Funkcje kolekcji

Funkcje te są używane w kolekcjach. Kolekcje oznaczają grupowanie elementów i zwracanie pojedynczych elementów lub tablicy elementów w zależności od typu zwrotu wymienionego w nazwie funkcji.

Typ zwrotu Nazwa funkcji Opis
INT rozmiar (mapa ) Pobierze i poda numer komponentów w typie mapy
INT rozmiar (tablica ) Pobierze i poda numer elementów w typie tablicy
Szyk Map_keys(Mapa ) Pobierze i wyświetli tablicę zawierającą klucze mapy wejściowej. Tutaj tablica jest nieuporządkowana
Szyk Wartości_mapy(Mapa ) Pobierze i wyświetli tablicę zawierającą wartości mapy wejściowej. Tutaj tablica jest nieuporządkowana
Szyk Sort_array(Tablica ) sortuje tablicę wejściową w kolejności rosnącej tablicy i elementów i zwraca ją

Funkcje daty

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

Nazwa funkcji Typ zwrotu Opis
Unix_znacznik czasu() BigInt Dostaniemy aktualne Unix znacznik czasu w sekundach
To_date (znacznik czasu ciągu znaków) ciąg Pobierze i poda datę jako część ciągu znacznika czasu:
rok (data ciągu) INT Pobierze i poda rok jako część daty lub ciągu znaków czasu
kwartał (data/znacznik czasu/ciąg znaków) INT Pobierze i poda kwartał roku dla daty, znacznika czasu lub ciągu znaków z zakresu od 1 do 4
miesiąc (data ciągu) INT Da miesiącowi część daty lub ciąg znacznika czasu
godzina (data ciągu) INT Pobierze i poda godzinę znacznika czasu
minuta (data ciągu) INT Pobierze i poda minutę znacznika czasu
Date_sub(string data początkowa, int dni) ciąg Pobierze i poda odejmowanie liczby dni do daty początkowej
Bieżąca data dane Pobierze i poda aktualną datę na początku oceny zapytania
LAST _day (data ciągu) ciąg Pobierze i poda ostatni dzień miesiąca, do którego należy dana data
trunc (data ciągu, format ciągu) ciąg Pobierze i poda datę obciętą do jednostki określonej w formacie.

Obsługiwane formaty w tym:

MIESIĄC/MIESIĄC/MM, ROK/RRRR/RR.

Funkcje matematyczne

Funkcje te są używane w matematyce Operacje. Zamiast tworzyć UDF, mamy wbudowane funkcje matematyczne w Hive.

Nazwa funkcji Typ zwrotu Opis
okrągły (podwójny X) PODWÓJNIE Pobierze i zwróci zaokrągloną wartość BIGINT X
zaokrąglenie(DOUBLE X, INT d) PODWÓJNIE Pobiera i zwraca X zaokrąglone do d miejsc po przecinku
brązowy(PODWÓJNY X) PODWÓJNIE Pobierze i zwróci zaokrągloną wartość BIGINT X przy użyciu trybu zaokrąglania HALF_EVEN
podłoga (podwójne X) DUŻE Pobierze i zwróci maksymalną wartość BIGINT, która jest równa lub mniejsza niż wartość X
sufit(DOUBLE a), sufit(DOUBLE a) DUŻE Pobierze i zwróci minimalną wartość BIGINT, która jest równa lub większa niż wartość X
rand(), rand(nasiono INT) PODWÓJNIE Pobierze i zwróci losową liczbę o równomiernym rozkładzie od 0 do 1

Funkcje warunkowe

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

Nazwa funkcji Typ zwrotu Opis
if(Warunek testowy boolowski, wartość T prawda, wartość T fałsz lub null) T Pobierze i da wartość True kiedy
Warunek testu jest prawdziwy,
w przeciwnym wypadku zwraca wartość False lub Null.
ISNULL(X) Boolean Pobierze i zwróci wartość true, jeśli X jest NULL, lub false, jeśli nie jest.
NIENULL(X) Boolean Pobierze i zwróci wartość true, jeśli X nie jest NULL, lub false w przeciwnym wypadku.

Funkcje łańcuchowe

Manipulacje ciągami znaków i operacje na ciągach znaków – funkcje te można wywołać.

Nazwa funkcji Typ zwrotu Opis
odwróć (ciąg X) ciąg Da to odwrócony ciąg znaków X
rpad(str, int długość, string pad) ciąg Pobierze i poda str, który jest dopełniony po prawej stronie padem o długości (wartość całkowita)
rtrim(ciąg X) ciąg Pobierze i zwróci ciąg znaków powstały w wyniku przycięcia spacji z końca (prawej strony) X
Na przykład, rtrim('wyniki') daje w wyniku 'wyniki'
spacja(INT n) ciąg Pobierze i wyświetli ciąg n spacji.
split(STRING str., STRING pat) szyk Dzieli str wokół pat (pat jest wyrażeniem regularnym).
Str_to_map(tekst[, ogranicznik1, ogranicznik2]) mapa Podzieli tekst na pary klucz-wartość za pomocą dwóch ogranicznikó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. Zapisane funkcje zdefiniowane przez użytkownika Java dla konkretnych modułów.

Niektóre UDF-y są specjalnie zaprojektowane do ponownego wykorzystania kodu w ramach aplikacji. Programista będzie rozwijał te funkcje w Java i zintegruj te UDF z Hive.

Podczas wykonywania zapytania programista może bezpośrednio użyć kodu, a funkcje UDF zwrócą dane wyjściowe zgodnie z zadaniami zdefiniowanymi przez użytkownika. Zapewni wysoką wydajność pod względem kodowania i wykonywania.

Na przykład w przypadku tworzenia ciągów znaków nie mamy żadnej predefiniowanej funkcji w Hive. W tym celu możemy zapisać rdzeń UDF Java. Jeśli potrzebujemy funkcjonalności Stem, możemy bezpośrednio wywołać ten Stem UDF w Hive.

Funkcjonalność rdzenia oznacza tutaj wyprowadzanie słów z ich rdzeni. To tak, jakby algorytm stemplowania redukował słowa „życzenie”, „życzenie” i „życzenia” do rdzenia słowa „życzenie”. Do realizacji tego typu funkcjonalności możemy zapisać w formacie UDF Java i zintegrować go z Ul.

W zależności od przypadków użycia, UDF-y mogą być pisane. Będą akceptować i generować różną liczbę wartości wejściowych i wyjściowych.

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

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

Codzienny biuletyn Guru99

Rozpocznij dzień od najnowszych i najważniejszych wiadomości na temat sztucznej inteligencji, dostarczanych już teraz.