Вступ до функцій вбудованого вулика

Функції побудовані для виконання різних аналітичних вимог і таких операцій, як математичні, логічні, арифметичні та реляційні, на величезних наборах даних і таблицях. Функції використовуються, коли нам доведеться повторно використовувати подібні операції кілька разів. У цьому просунутому світі BigData обробляти та обробляти величезні набори даних, писати програми MapReduce стає важко. Так, мова Hive Query Language (HQL) була введена поверх Apache Hadoop в жовтні 2010 року, за допомогою якої ми можемо легко запускати запити, схожі на SQL. Далі HQL внутрішньо перетворюються на програми Mapreduce для отримання результатів. У цій темі ми розглянемо функції вбудованих вуликів.

Функції вулика в основному класифікуються на дві:

  1. Вбудовані функції
  2. Функції, визначені користувачем

Вбудовані функції вулика

Вбудовані функції заздалегідь визначені та легко доступні для використання у вулику. Вони класифіковані нижче:

1. Строкові функції

Використовується для струнних маніпуляцій та перетворень.

Назва функціїТип поверненняОписПриклад
substr (рядок, int, int)РядокВін повертає рядок із заданого початкового положення до заданої довжиниsubstr ("Запит на вулик", 5, 5) призводить до "запиту"
rtrim (рядок X)РядокВін повертає рядок без провідних проміжківrtrim ('Hello') призводить до "Hello"
ltrim (рядок X)РядокВін повертає рядок без лівих провідних пробілівltrim ("Привіт") призводить до "Hello"
реверс (рядок X)РядокВін повертає зворотний рядок Xreverse ('hello') призводить до 'olleh'
rpad (рядок X, int, рядок)РядокВін повертає праву колодку з "pad" на довжинуrpad ("Привіт", 3, "привіт") результати в "Привіт, привіт, привіт"
lpad (рядок X, int, рядок)РядокВін повертає ліву прокладену рядок з "pad" на довжинуlpad ("Привіт", 3, "Привіт") результати в "Привіт Привіт Привіт Привіт"
спліт (рядок X, погладжування рядків)МасивВін повертає масив рядків після розбиття рядка навколо заданого шаблонурозкол ("A, B, C, D", ", ") призводить до ("A", B ", " C ", " D ")
довжина (рядок X)ЦілийВін повертає довжину рядка Xдовжина ("Bigdata") призводить до 7
concat (рядок X, рядок Y)РядокВін повертає об'єднаний рядок як X, так і Yconcat ('Hello', 'World') призводить до 'HelloWorld'

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

Застосовується для застосування математичних операцій, таких як округлення, стеля, підлога тощо замість створення UDF.

Назва функціїТип поверненняОписПриклад
круглий (подвійний X)ПодвійнийВін повертає округлене значення Xраунд (29.5) призводить до 30
круглий (подвійний X, Int d)ПодвійнийВін повертає округлене значення X до d десяткових знаківраунд (29.3456, 2) призводить до 29, 34
стеля (подвійний X)ПодвійнийВін повертає мінімальне значення BIGINT, яке дорівнює або більше Xстеля (20.5555) призводить до 21
підлога (подвійний X)ПодвійнийВін повертає максимальне значення BIGINT, яке дорівнює або більше Xстеля (20.5555) призводить до 20
rand ()ПодвійнийВін повертає випадкові числа від 0 до 9rand () результати в rand (0-9)
abs (подвійний X)ПодвійнийВін повертає абсолютне значення числа Xabs (-25) призводить до 25
порох (подвійний X, подвійний Y)ПодвійнийВін повертає значення X, підняте до потужності Yпорошок (2, 3) призводить до 8
exp (подвійний X)ПодвійнийВін повертає значення показника Xexp (2) призводить до 7, 389

3. Умовні функції

Використовується для перевірки виразу на True чи False та повертає відповідні результати.

Назва функціїТип поверненняОписПриклад
isnull (X)БулеваВін повертає TRUE, якщо X NULL else falseisnull ('NULL') повертається в TRUE
isnotnull (X)БулеваВін повертає TRUE, якщо X не NULL, а інше falseisnotnull ('NULL') повертається у FALSE
nvl (арг. X, арг. Y)РядокВін повертає arg Y, якщо arg X - NULL, то повертає arg Xnvl ('NULL', 'Value is Null') призводить до 'Value is Null'
if (булева перевіркаCondition, T valueTrue, T valueFalseOrNull)ТВін повертає True, коли умова тесту є істинним, а False або Null в іншому випадкуif (2 = 2, 'True', 'False')
злиття (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 ()РядокВін повертає частину дати в рядку часової позначкиto_date () повертає частину дати
date_sub (рядок дата, int днів)РядокВін повертає віднімання кількості днів до датиdate_sub ('1994-11-24', 20) повертається '1994-11-04'
Місяць_поміж (дата1, дата2)ПодвійнийВін повертає кількість місяців між датою1 та датою2 (місяців чи ні днів?)Місяць між ('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)) return ('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)

Висновок

Поки ми обговорювали різні вбудовані функції у вулику. У порівнянні з MapReduce, вулик є більш зручним та економієм часу. Кожен, хто має базові знання SQL, може легко писати HQL, а не складні програми MapReduce для обробки даних.

Рекомендовані статті

Це посібник з функцій вбудованих вуликів. Тут ми обговорюємо вбудовані функції, які заздалегідь визначені та легко доступні для використання у вулику. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

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