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...