1. 程式人生 > >hive---常用內建函式總結

hive---常用內建函式總結

數學函式:

round(四捨五入):


ceil(向上取整):


floor(向下取整):

上面的結果變為45

字元函式:

lower(轉小寫):

upper(轉大寫):


length(字串長度,字元數):


concat(字串拼接):


substr(求子串):

substr(a,b):從字串a中,第b位開始取,取右邊所有的字元

substr(a,b,c):從字串a中,第b為開始取,取c個字元

注意:空格算佔用一個字元的空間


trim(去前後空格):


lpad(左填充):

rpad(右填充):


收集函式:

size:返回map集合的個數

格式:size(map(<key,value>,<key,value>))


轉換函式:

cast:轉換資料型別



日期函式:

to_date:從一個字串中取出為日期的部分


year、month、day:從一個日期中取出相應的年、月、日


weekofyear:返回輸入日期在該年中是第幾個星期


datediff:兩個日期相減,返回相差天數


date_add:在一個日期基礎上增加天數

date_sub:在一個日期基礎上減去天數


條件函式:

coalesce:從左到右返回第一個不為null的值


case...when...:條件表示式

語法格式:case A when B then C [when D then E]* [else F] end

解釋:對於A來說,如果判斷為B則返回C,如果判斷為D則返回E(此處判斷條件可為多個),如果以上都不是則返回F。注意,最後還有還有一個end結束符。


執行結果:


聚合函式:

count:返回行數

sum:組內某列求和

min:組內某列最小值

max:組內某列最大值

avg:組內某列平均值

以工資sal為例:

select count(*),sum(sal),max(sal),min(sal),avg(sal) from emp;

表生成函式:

explode:把map集合中每個鍵值對或陣列中的每個元素都單獨生成一行的形式