Hive常用函式使用

2021-09-27 12:34:35 字數 2366 閱讀 1235

本篇主要介紹一些經常會用到的hive函式,『—』後序也會持續新增更新

msck repair table table_name 更新hive表的元資料

## 常用函式

date_format(

)date_add(

)date_sub(

)last_day(

)next_day(

)months_between(

)month()

day(

)year()

round()

## 四捨五入,求近似值

----------------------------------

get_json_object(

)select get_json_object(

'[,]'

,'$[0].name');

大浪

----------------------------------

select

get_json_object(

'}',

'$.user.name'

)as name ,

get_json_object(

'}',

'$.user.age'

)as age

;name age

大浪 35

--------------------------------

sum(if(

,,))

case

when

then

else

end

nvl(

)lag(

)over()

lead(

)over()

explode(

)## select from table_name lateral view explode(col) table_alias as clomuns...

cast(

astimestamp[as

decimal(10

,2)]

) 格式轉換

substring('',

0,3)

## 切分,從0開始,切分3個字元

split(,)

[0] concat(

)concat_ws(

)collect_set(

)collect_list(

)array_contains(split(column_name,

'|')

,'***'

) 檢視字串中是否包含***

rlike

'.*(a|b).*'

## 常用視窗函式

cluster by

## 只能預設正序,而且必須保證distribute by 與sort by 的字段相同

distribute by c1 sort by c2

sum()|

max(

)|lag(

)|lead(

)over

(partition

by c1 order

by c2 rows

between n|

unbounded

[preceeding|

following

]and current_row )

## 插入寬表語句

with tmp1 as()

,tmp2 as()

,t*** as()

...insert

into

|overwrite table table_name

select

from

(select c1 ...

from tmp1

union

allselect c1 ...

from tmp2

union

allselect c1 ...

from t***

) t

group

by c1

## 必須保證3個表選出的字段別名相同 組成一張臨時表

explain

extended

select

*from table_name ## 檢視執行計畫

show

create

table table_name ## 檢視建表語句

desc table_name

show functions

desc

function

extended fun_name ## 檢視函式基本使用

Hive常用函式

if判斷 select if 1 1,yes no 返回yes 語法 case expression when condition1 then result1 when condition2 then result2 else result end 例子 case a when 1 then one...

hive常用函式

hive常用函式 1 檢視函式用法 desc function 函式名 desc function extended 函式名 2 獲取array陣列長度 size函式 select size collect list field from table select size split hello ...

Hive常用函式

常用日期函式 unix timestamp 返回當前或指定時間的時間戳 from unixtime 將時間戳轉為日期格式 current date 當前日期 current timestamp 當前的日期加時間 to date 抽取日期部分 year 獲取年 month 獲取月 day 獲取日 ho...