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

Функции созданы для выполнения различных аналитических требований и операций, таких как математические, логические, арифметические и реляционные, над огромными наборами данных и таблицами. Функции используются, когда нам приходится многократно повторять подобные операции. В этом продвинутом мире BigData, для обработки и обработки огромных наборов данных, написание программ MapReduce становится трудным. Итак, Hive Query Language (HQL) был представлен поверх Apache Hadoop в октябре 2010 года, с помощью которого мы можем легко выполнять запросы, похожие на SQL. HQL далее внутренне преобразуются в программы Mapreduce для получения выходных данных. В этой теме мы собираемся обсудить встроенные функции Hive.

Функции улья широко подразделяются на две:

  1. Встроенные функции
  2. Пользовательские функции

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

Встроенные функции предопределены и легко доступны для использования в Hive. Они классифицированы как ниже:

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

Используется для работы со строками и преобразования.

Имя функцииТип возвратаОписаниепример
substr (string, int, int)строкаВозвращает строку из указанной начальной позиции до указанной длиныsubstr ('Hive query', 5, 5) приводит к 'query'
тртрим (строка Х)строкаВозвращает строку без правых пробеловrtrim ('Hello') приводит к 'Hello'
Итрим (строка Х)строкаВозвращает строку без пробелов слеваИтрим («Привет») приводит к «Привет»
обратный (строка X)строкаВозвращает обратную строку Xобратное («привет») приводит к «олле»
rpad (строка X, int, строка)строкаВозвращает строку с правым отступом с pad для длиныrpad («Hello», 3, «hi») приводит к «Hello hi hi hi»
lpad (строка X, int, строка)строкаВозвращает строку с отступом влево с использованием pad на длинуlpad («Hello», 3, «Hi») приводит к «Hi Hi Hi Hello»
разделить (строка X, строка погладить)массивВозвращает массив строк после разбиения строки вокруг указанного шаблонаразделение («A, B, C, D», «, ») приводит к («A», B », « C », « D »)
длина (строка X)целое числоВозвращает длину строки Xдлина ('Bigdata') приводит к 7
concat (строка X, строка Y)строкаВозвращает объединенную строку как X, так и Yconcat («Hello», «World») приводит к «HelloWorld»

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

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

Имя функцииТип возвратаОписаниепример
круглый (двойной X)двойнойВозвращает округленное значение Xраунд (29.5) результат 30
круглый (двойной X, Int d)двойнойВозвращает округленное значение X до d десятичных знаковраунд (29.3456, 2) приводит к 29.34
потолок (двойной X)двойнойВозвращает минимальное значение BIGINT, равное или превышающее Xceil (20.5555) результат 21
пол (двойной X)двойнойВозвращает максимальное значение BIGINT, равное или превышающее XCeil (20.5555) приводит к 20
Rand ()двойнойВозвращает случайные числа от 0 до 9rand () приводит к rand (0-9)
абс (двойной X)двойнойВозвращает абсолютное значение числа Xабс (-25) результаты в 25
Pow (двойной X, двойной Y)двойнойВозвращает значение X, возведенное в степень YPow (2, 3) приводит к 8
опыт (двойной X)двойнойВозвращает значение показателя степени Xexp (2) приводит к 7.389

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

Используется для проверки выражения на True или False и возвращает соответствующие результаты.

Имя функцииТип возвратаОписаниепример
IsNull (Х)логическийВозвращает TRUE, если X равен NULL, иначе falseisnull ('NULL') возвращается в TRUE
isnotnull (Х)логическийВозвращает TRUE, если X не равен NULL, иначе falseisnotnull ('NULL') возвращается в FALSE
нвл (арг х, арг у)строкаВозвращает arg Y, если arg X равен NULL, иначе возвращает arg Xnvl ('NULL', 'Value is Null') приводит к 'Value is Null'
if (логическое условие testCondition, T valueTrue, T valueFalseOrNull)TВозвращает True, когда условие теста истинно, и False или Null в противном случае.if (2 = 2, 'True', 'False')
COALESCE (X, Y)(Любые)Он возвращает первые ненулевые значения из списка (У меня есть сомнения по этому поводу - вернет ли это первое значение или все ненулевые значения?)coalesce (null, null, null, 1, 5, null, null, 6) приводит к 1

4. Функции даты

Используется для выполнения манипуляций с датами и преобразования типов данных.

Имя функцииТип возвратаОписаниепример
текущая датаДатаВозвращает текущую дату выполнения запросаcurrent_date () возвращает сегодняшнюю дату
UNIX_TIMESTAMP ()BigIntВозвращает текущую временную метку Unix выполнения запроса в секундах.unix_timestamp () возвращает текущую метку времени unix
год (строковая дата)IntВозвращает год часть датыгод ('1994-11-24') возвращается 1994
квартал (строковая дата)IntВозвращает квартал года датыквартал ('1994-11-24') возвращает 4
месяц (строковая дата)IntВозвращает месячную часть датымесяц ('1994-11-24') возвращается 11
час (строковая дата)IntВозвращает часовую часть метки временичас ('1994-11-24 12:45:23') возвращает 12
минута (строковая дата)IntВозвращает минутную часть метки временигод ('1994-11-24 12:45:23') возвращает 45
встретиться()строкаВозвращает часть даты строки метки времениto_date () возвращает часть даты
date_sub (строковая дата, int days)строкаВозвращает вычитание количества дней до датыdate_sub ('1994-11-24', 20) возвращает '1994-11-04'
MONTHS_BETWEEN (date1, дата2)двойнойВозвращает количество месяцев между date1 и date2 (месяцы или нет дней?)months_between ('1994-11-24', '1994-11-04') возвращает 20

5. Функция сбора

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

Имя функцииТип возвратаОписаниепример
размер (карта)IntВозвращает общее количество элементов на картеsize (('a': 2, 'b': 6)) возвращает 2
размер (массив)IntВозвращает общее количество элементов в массиверазмер ((1, 3, 4, 7)) возвращает 4
array_contains (массив, значение)логическийВозвращает true, если массив содержит значениеarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) возвращает TRUE
map_keys (карта)массивВозвращает неупорядоченный массив ключей картыmap_keys (('a': 2, 'b': 6, 'c': 1)) возвращает ('b', 'c', 'a')
map_valuess (карта)массивВозвращает неупорядоченный массив значений картыmap_keys (('a': 2, 'b': 6, 'c': 1)) возвращает (1, 6, 2)
sort_array (массив)массивВозвращает отсортированный массив указанного массива.sort_array ((1, 3, 9, 8, 5, 4, 7)) возвращает (1, 3, 4, 5, 7, 8, 9)

Вывод

До сих пор мы обсуждали различные встроенные функции в Hive. По сравнению с MapReduce Hive более удобен и экономит время. Любой, кто имеет базовые знания SQL, может легко писать HQL, а не сложные программы MapReduce для обработки данных.

Рекомендуемые статьи

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

  1. Функции строки улья
  2. Функция улья
  3. Команды улья
  4. Улей Архитектура
  5. Улей Заказать
  6. Улей Установка
  7. Встроенные функции Python