Функция улья: встроенная & UDF (функции, определяемые пользователем)

Содержание:

Anonim

Функции созданы для определенной цели для выполнения таких операций, как математические, арифметические, логические и относительные, с операндами имен столбцов таблицы.

Встроенные функции

Это функции, которые уже доступны в Hive. Сначала мы должны проверить требования к приложению, а затем мы можем использовать эти встроенные функции в наших приложениях. Мы можем вызывать эти функции прямо в нашем приложении.

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

Типы встроенных функций в HIVE

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

Функции сбора:

Эти функции используются для коллекций. Коллекции означают группировку элементов и возврат одного или массива элементов в зависимости от типа возвращаемого значения, указанного в имени функции.

Тип возврата Название функции Описание
INT размер (Карта ) Он будет извлекать и указывать номера компонентов в типе карты.
INT размер (Массив ) Он будет извлекать и давать номера элементов в типе массива
Массив Map_keys (Карта ) Он выполнит выборку и выдаст массив, содержащий ключи входной карты. Здесь массив в неупорядоченном виде
Массив Map_values ​​(Карта ) Он выполнит выборку и выдаст массив, содержащий значения входной карты. Здесь массив в неупорядоченном виде
Массив Sort_array (Массив ) сортирует входной массив в порядке возрастания массива и элементов и возвращает его

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

Они используются для выполнения манипуляций с датами и преобразования типов даты из одного типа в другой:

Название функции Тип возврата Описание
Unix_Timestamp () BigInt Мы получим текущую временную метку Unix в секундах
To_date (временная метка в виде строки) нить Он получит и предоставит дату в строке отметки времени:
год (строка даты) INT Он будет извлекать и указывать год в дате или строку метки времени.
квартал (дата / время / строка) INT Он будет извлекать и указывать квартал года для даты, метки времени или строки в диапазоне от 1 до 4.
месяц (строка даты) INT Он предоставит часть месяца в дате или строку отметки времени
час (строка даты) INT Он будет извлекать и указывать час метки времени.
минута (строка даты) INT Он будет извлекать и давать минуту метки времени
Date_sub (дата начала строки, целые дни) нить Он получит и даст вычитание количества дней до даты начала.
Текущая дата Дата Он будет извлекать и давать текущую дату в начале оценки запроса.
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 Он будет извлекать и возвращать максимальное значение BIGINT, которое равно или меньше значения X
потолок (DOUBLE a), потолок (DOUBLE a) BIGINT Он будет извлекать и возвращать минимальное значение BIGINT, которое равно или больше значения X
rand (), rand (начальное число INT) ДВОЙНОЙ Он будет извлекать и возвращать случайное число, которое равномерно распределяется от 0 до 1.

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

Эти функции используются для проверки условных значений.

Название функции Тип возврата Описание
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) Т Он будет извлекать и давать значение True, если Test Condition имеет значение true, в противном случае выдает значение False или Null.
ISNULL (X) Логический Он будет извлекать и давать истину, если X равен NULL, и ложь в противном случае.
ISNOTNULL (X) Логический Он будет извлекать и давать истину, если X не равен NULL, и ложь в противном случае.

Строковые функции:

Эти функции могут быть вызваны строковыми манипуляциями и строковыми операциями.

Название функции Тип возврата Описание
обратный (строка X) нить Это даст перевернутую строку X
rpad (строка str, длина int, строка pad) нить Он будет извлекать и давать str, который дополняется справа pad до длины length (целочисленное значение)
rtrim (строка X) нить Он будет извлекать и возвращать строку, полученную в результате обрезки пробелов с конца (правой стороны) X. Например , rtrim ('results') приводит к 'results'.
пробел (INT n) нить Он выполнит выборку и выдаст строку из n пробелов.
разделить (STRING ул., STRING pat) множество Разделяет str вокруг pat (pat - регулярное выражение).
Str_to_map (текст [, delimiter1, delimiter2]) карта <Строка, Строка> Он разделит текст на пары ключ-значение с помощью двух разделителей.

UDF (пользовательские функции):

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

Некоторые из UDF специально разработаны для повторного использования кода в инфраструктурах приложений. Разработчик разработает эти функции на Java и интегрирует эти UDF с Hive.

Во время выполнения запроса разработчик может напрямую использовать код, а пользовательские функции будут возвращать выходные данные в соответствии с заданными пользователем задачами. Это обеспечит высокую производительность с точки зрения кодирования и исполнения.

Например, для выделения строки у нас нет какой-либо предопределенной функции в Hive, для этого мы можем написать UDF основы на Java. Везде, где нам нужна функциональность Stem, мы можем напрямую вызвать эту UDF Stem в Hive.

Здесь основная функция означает получение слов от корневых слов. Это похоже на то, что алгоритм выделения корней сокращает слова «желающий», «желаемый» и «желающий» до корневого слова «желаю». Для выполнения функций этого типа мы можем написать UDF на java и интегрироваться с Hive.

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

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

С другой стороны, он может принимать группу значений в качестве входных и возвращать одно выходное значение.