Функция на кошера: Вграден & UDF (потребителски функции)

Съдържание:

Anonim

Функциите са изградени с определена цел за извършване на операции като математически, аритметични, логически и релационни върху операндите на имена на колони в таблицата.

Вградени функции

Това са функции, които вече са налични в Hive. Първо, трябва да проверим изискването за приложението и след това можем да използваме тези вградени функции в нашите приложения. Можем да извикаме тези функции директно в нашето приложение.

Синтаксисът и типовете са споменати в следващия раздел.

Видове вградени функции в HIVE

  • Функции за събиране
  • Функции за дата
  • Математически функции
  • Условни функции
  • Струнни функции
  • Разни Функции

Функции на колекцията:

Тези функции се използват за колекции. Колекциите означават групирането на елементи и връщането на единични или масив от елементи зависи от типа на връщане, споменат в името на функцията.

Тип на връщане Име на функцията Описание
INT размер (Карта ) Той ще извлече и ще даде номера на компонентите в типа на картата
INT размер (масив ) Той ще извлече и ще даде номера на елементите в типа масив
Масив Map_keys (Map ) Той ще извлече и ще даде масив, съдържащ ключовете на картата за въвеждане. Тук масивът е неподреден
Масив Map_values ​​(Map ) Той ще извлече и ще даде масив, съдържащ стойностите на въведената карта. Тук масивът е неподреден
Масив Sort_array (Array ) сортира входния масив във възходящ ред на масива и елементите и го връща

Функции за дата:

Те се използват за извършване на манипулации с дата и преобразуване на типове дати от един тип в друг тип:

Име на функцията Тип на връщане Описание
Unix_Timestamp () BigInt Ще получим текущия клеймо на Unix за секунди
To_date (низ от време) низ Той ще извлече и ще даде датата част от низ с времеви клей:
година (дата на низ) INT Той ще извлече и ще даде годината част от дата или низ с времеви клей
тримесечие (дата / клеймо / низ) INT Той ще извлече и ще даде тримесечието на годината за дата, клеймо или низ в диапазона от 1 до 4
месец (дата на низ) INT Той ще даде месечната част на дата или низ с времеви клей
час (дата на низ) INT Той ще извлече и ще даде часа на клеймото
минута (дата на низ) INT Той ще извлече и дава минута на времевия клей
Date_sub (начална дата на низа, int дни) низ Той ще извлече и ще даде Изваждане на броя дни до началната дата
Текуща дата дата Той ще извлече и ще даде текущата дата в началото на оценката на заявката
LAST _day (низ дата) низ Той ще изтегли и ще даде последния ден от месеца, на който принадлежи датата
trunc (дата на низ, формат на низ) низ Той ще извлече и ще даде пресечена дата на единицата, посочена от формата. Поддържани формати в това: МЕСЕЦ / МОН / ММ, ГОД / ГГГГ / ГГ.

Математически функции :

Тези функции се използват за математически операции. Вместо да създавамеUDF, имаме вградени математически функции в Hive.

Име на функцията Тип на връщане Описание
кръг (DOUBLE X) ДВОЙНА Той ще извлече и връща закръглената BIGINT стойност на X
кръг (DOUBLE X, INT d) ДВОЙНА Той ще извлече и връща X, закръглено до d знака след десетичната запетая
bround (DOUBLE X) ДВОЙНА Той ще извлече и върне закръглената BIGINT стойност на X, използвайки режим на закръгляне HALF_EVEN
етаж (DOUBLE X) ГОЛЯМ Той ще извлече и връща максималната BIGINT стойност, която е равна на или по-малка от X стойност
таван (ДВОЙНО а), таван (ДВОЙНО а) ГОЛЯМ Той ще извлече и върне минималната BIGINT стойност, която е равна или по-голяма от X стойност
rand (), rand (INT семе) ДВОЙНА Той ще извлече и връща произволно число, което се разпределя равномерно от 0 до 1

Условни функции:

Тези функции се използват за проверка на условни стойности.

Име на функцията Тип на връщане Описание
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) т Той ще извлече и ще даде стойност True, когато Test Condition е true, в противен случай дава стойност False or Null.
ISNULL (X) Булево Той ще извлече и ще даде истина, ако X е NULL и false в противен случай.
НЕТОНУЛНО (X) Булево Той ще извлече и ще даде true, ако X не е NULL и false в противен случай.

Струнни функции:

Струнни манипулации и низ операции тези функции могат да бъдат извикани.

Име на функцията Тип на връщане Описание
обратно (низ X) низ Това ще даде обърнатия низ от X
rpad (низ str, дължина int, низ подложка) низ Той ще извлече и ще даде str, който е подплатен с подложка с дължина до дължината (целочислена стойност)
rtrim (низ X) низ Той ще извлече и връща низа, резултат от подрязване на интервали от края (дясната страна) на X Например , rtrim ('резултати') води до 'резултати'
пространство (INT n) низ Той ще извлече и ще даде низ от n интервали.
разделяне (STRING str, STRING pat) масив Разделя str около pat (pat е регулярен израз).
Str_to_map (текст [, разделител1, разделител2]) map Той ще раздели текста на двойки ключ-стойност, използвайки два разделителя.

UDF (потребителски функции):

В Hive потребителите могат да дефинират собствени функции, за да отговорят на определени изисквания на клиента. Те са известни като UDF в Hive. Потребителски функции, написани на Java за специфични модули.

Някои от UDF са специално проектирани за повторна употреба на код в рамки на приложения. Разработчикът ще разработи тези функции в Java и ще интегрира тези UDF с Hive.

По време на изпълнението на заявката разработчикът може директно да използва кода и UDF ще върнат изходи според зададените от потребителя задачи. Той ще осигури висока производителност по отношение на кодиране и изпълнение.

Например за низходящ низ нямаме никаква предварително дефинирана функция в Hive, за това можем да напишем stem UDF в Java. Където и да се нуждаем от функционалност на ствола, можем директно да извикаме този ствол UDF в Hive.

Тук функционалността на ствола означава извличане на думи от кореновите думи. Това е все едно, че алгоритъмът за извличане намалява думите „желаещ“, „пожелал“ и „пожелания“ до основната дума „пожелавам“ За изпълнение на този тип функционалност можем да напишем UDF в java и да се интегрираме с Hive.

В зависимост от случаите на използване на UDF могат да бъдат написани, той ще приема и генерира различен брой входни и изходни стойности.

Общият тип UDF ще приеме единична входна стойност и ще създаде единична изходна стойност. Ако UDF, използван в заявката, тогава UDF ще бъде извикан веднъж за всеки ред в набора от данни за резултатите.

По другия начин той може да приеме група стойности като вход и също така да върне единична изходна стойност.