آموزش Hive

آموزش Hive – توابع تعبیه شده ی داخلی

در این بخش توابع تعبیه شده ی داخلیِ Hive  را توضیح میدیم.  این توابع کاملاً شبیه به توابعِ SQL هستن فقط کاربرد آنها با هم فرق میکنه.

توابع تعبیه شده ی داخلی

Hive از توابع تعبیه شده ی داخلی زیر پشتیبانی میکنه:

نوع بازگشتی

شکل

توضیح

BIGINT

round(double a)

مقدار گرد شده ی BIGINT یک double را برمی گرداند.

BIGINT

floor(double a)

بزرگ ترین مقدارِ BIGINT که کوچکتر یا مساویِ double باشه را برمیگرداند.

BIGINT

ceil(double a)

کوچک ترین مقدارِ BIGINT که بزرگتر یا مساویِ double باشه را برمیگرداند.

double

rand(), rand(int seed)

یک مقدار تصادفی برمیگرداند که سطر به سطر فرق میکنه.

string

concat(string A, string B,...)

نتیجه ی الحاقِ B به A را بصورت یک رشته برمیگرداند.

string

substr(string A, int start)

زیررشته ای از A از نقطه ی شروع تا انتهای A برمیگرداند.

string

substr(string A, int start, int length)

زیررشته ای از A از نقطه ی شروع به اندازه ی طول داده شده برمیگرداند.

string

upper(string A)

نتیجه ی تبدیل کاراکترهایِ A به حروف بزرگ را بصورت رشته ی string برمی گرداند.

string

ucase(string A)

مشابه بالا.

string

lower(string A)

نتیجه ی تبدیل کاراکترهایِ A به حروف کوچک را بصورت رشته ی string برمی گرداند.

string

lcase(string A)

مشابه بالا.

string

trim(string A)

بعد از حذف فضاهای خالی از ابتدا و انتهای A، نتیجه را بصورت رشته ی متنی (string) برمیگرداند.

string

ltrim(string A)

بعد از حذف فضاهای خالی از ابتدای (سمت چپ) A، نتیجه را بصورت رشته ی متنی (string) برمیگرداند.

string

rtrim(string A)

بعد از حذف فضاهای خالی از انتهای (سمت راست) A، نتیجه را بصورت رشته ی متنی (string) برمیگرداند.

string

regexp_replace(string A, string B, string C)

تمام زیررشته های B که مطابق با عبارت دستوریِ منظمِ جاوای C باشن را جایگزین کرده و نتیجه را بصورت یک رشته ی متنی (string) برمی گرداند.

int

size(Map<K.V>)

تعداد عناصرِ نوعِ map را برمیگرداند.

int

size(Array<T>)

تعداد عناصرِ نوع آرایه ای را برمیگرداند.

value of <type>

cast(<expr> as <type>)

نتیجه ی تبدیل عبارتِ expr به <type> را برمی گرداند. مثال:

cast('1' as BIGINT)

رشته ی ‘1’ را به integral تبدیل میکنه. در صورتی که تبدیل موفقیت آمیز نباشه، A NULL برگردانده میشه.

string

from_unixtime(int unixtime)

تعداد ثانیه ها را از زمان یونیکس (1970-01-01 00:00:00 UTC) به رشته ی نمایشیِ timestamp منقطه ی زمانی جاری سیستم با فرمت "1970-01-01 00:00:00" تبدیل می کنه.

string

to_date(string timestamp)

قسمت تاریخ رشته ی timestamp را برمیگرداند

to_date("1970-01-01 00:00:00") = "1970-01-01"

int

year(string date)

قسمت سال را از تاریخ یا از رشته ی timestamp برمیگرداند:

year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970

int

month(string date)

قسمت ماه را از تاریخ یا از رشته ی timestamp برمیگرداند:

month("1970-11-01 00:00:00") = 11, month("1970-11-01") = 11

int

day(string date)

قسمت روز را از تاریخ یا از رشته ی timestamp برمیگرداند:

day("1970-11-01 00:00:00") = 1, day("1970-11-01") = 1

string

get_json_object(string json_string, string path)

شیء json را از یک رشته ی json در مسیرِ json تعیین شده، از حالت فشرده خارج کرده و رشته ی jsonای که از حالت فشرده خارج شده را برمی گرداند. درصورتی که رشته ی ورودیِ json نامعتبر باشه، NULL برمی گرداند.

مثال

کوئری زیر برخی از توابع تعبیه شده ی داخلی را نشان میده:

تابعِ round()

hive> SELECT round(2.6) from temp;

در صورتی که کوئری با موفقیت اجرا بشه، پاسخ زیر به شما نشان داده میشه:

3.0

تابعِ floor()

hive> SELECT floor(2.6) from temp;

در صورتی که کوئری با موفقیت اجرا بشه، پاسخ زیر به شما نشان داده میشه:

2.0

تابعِ ceil()

hive> SELECT ceil(2.6) from temp;

در صورتی که کوئری با موفقیت اجرا بشه، پاسخ زیر به شما نشان داده میشه:

3.0

توابعِ Aggregate

Hive از توابع تعبیه شده ی داخلیِ Aggregate زیر پشتیبانی می کنه. طرز استفاده ی این توابع مشابه توابعِ Aggregate در SQL است.

نوع بازگشتی

شکل

توضیح

BIGINT

count(*), count(expr),

count(*) – تعداد سطرهای بازیابی شده را برمیگرداند

DOUBLE

sum(col), sum(DISTINCT col)

جمع عناصرِ گروه یا جمع مقادیر مجزای ستونِ گروه را برمیگرداند.

DOUBLE

avg(col), avg(DISTINCT col)

میانگینِ عناصرِ گروه یا جمع میانگینِ مجزای ستونِ گروه را برمیگرداند.

DOUBLE

min(col)

کوچکترین مقدار سطرِ گروه را برمی گرداند.

DOUBLE

max(col)

بزرگترین مقدار سطرِ گروه را برمی گرداند.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش Hive

Learn Hive

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...