hive常用函式

2021-10-04 20:17:03 字數 1810 閱讀 7077

hive常用函式:

1、檢視函式用法:

desc function 函式名;

desc function extended 函式名;

2、獲取array陣列長度:size函式

select size(collect_list(field)

)from

table

;select size(split(

'hello;nihao'))

from

table

;--2

--注意size('')的值為1

3、替換字串中匹配上的內容:regexp_replace函式

regexp_replace(str,

regexp

, rep)

regexp_replace(field,

'-',

'/') 將field的-替換為/。

4、 顯示表分割槽資訊

show partitions tablename;

5、分割字串:split函式

split(string1,pat1):以pat1正則分隔字串string1,返回陣列。如split(

'a,b,c'

,','

)返回[

"a",

"b",

"c"]

注意:分號是sql的結束符,若是分號做分隔符,需要用分號的二進位制\073來表示。

6、行轉列:explode(col):

explode 函式是uftf函式,將hive一列中複雜的array或者map結構拆分成多行。

explode(array)  列表中的每個元素生成一行

explode(map) map中每個key

-value對,生成一行,key為一列,value為一列

7、將空值替換成其他值:coalesce()函式

將空值替換成其他值,返回第乙個非空值。如果所有表示式求值為null,則返回null

coalesce()函式用法:

coalesce

( expression1, expression2,..

. expression-n )

;

類似於mysql中的ifnull,寫成表示式的形式為:

case

when expression1 is

notnull

then expression1 else

expression2 end

;

而coalesce可以包含n個表示式,表示如果第乙個不為空取第乙個,否則判斷下乙個,以此類推,如果全部為空,則返回null值。

9、若為空賦指定值的函式 nvl(value, default_value)

returns default value if value is null else returns value

10、字元定位函式 instr(字串,子字串)

select instr(

'facebook'

,'boo'

from src limit1)

;--5

11、to_date 日期獲取函式

select to_date(

'2009-07-30 04:17:52'

)from src limit1;

--'2009-07-30'

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常用函式

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

hive常用函式

一 型別 1 udf user defined function 一進一出 select upper dd from emp 2 udaf user defined aggregation function 聚集函式,多進一出 類似於 count max min 3 udtf user define...