1.發(fā)現(xiàn)和描述函數(shù):
使用show functions顯示Hive中自帶的函數(shù):
還可以使用describe function命令展示相應(yīng)函數(shù)簡短的介紹:
2.調(diào)用函數(shù):
調(diào)用函數(shù)只需要在查詢中通過調(diào)用函數(shù)鳴,并傳入需要的參數(shù)即可碱蒙。
hive > select count(*) from request_log;
在hue中進(jìn)行查詢:
3.標(biāo)準(zhǔn)函數(shù):
標(biāo)準(zhǔn)函數(shù)一般表示以一行數(shù)據(jù)中的一列或多列數(shù)據(jù)作為參數(shù)然后返回結(jié)果是一個值的函數(shù)财异,如:concat(),cast等缸废。
4.聚合函數(shù):
與標(biāo)準(zhǔn)函數(shù)不同的聚合函數(shù)接受從零行到多行的零個到多個列卸例,然后返回單一值嫌吠。這樣的函數(shù)包括:sum(),avg()等瘾蛋。
5.表生成函數(shù):
Hive還支持的一類函數(shù)就是表生成函數(shù)营搅。和其他函數(shù)類別一樣云挟,所有的表生成函數(shù),包括自定義的和內(nèi)置的剧防,都被稱為用戶自定義表生成函數(shù)(UDTF)
表生成函數(shù)接受零個或多個輸入植锉,然后產(chǎn)生多列或多行輸出。例如array函數(shù)就是將一列輸入轉(zhuǎn)換成一個數(shù)組輸出的峭拘。如下:
hive > select array(1,2,3) from dual;
在Hue中執(zhí)行sql:
上面演示的sql事先需要創(chuàng)建表dual俊庇,并導(dǎo)入一條記錄,hive并沒有像oracle數(shù)據(jù)庫那樣的dual表鸡挠。
hive另外一個常用的表生成函數(shù)是:explode()函數(shù)辉饱,該函數(shù)以array類型數(shù)據(jù)作為輸入,然后對數(shù)組中的數(shù)據(jù)進(jìn)行迭代拣展,返回多行結(jié)果彭沼,一行一個數(shù)組元素值:
hive > select explode(array(1,2,3)) as element from dual;
在Hue中執(zhí)行sql: