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