您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關hive有哪些聚合函數,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
★聚合函數
count,sum,min,max,avg
var_pop(col) 返回指定列的方差
var_samp(col) 返回指定列的樣本方差
stddev_pop(col) 返回指定列的偏差(標準差) stddev_pop = stddev
stddev_samp(col) 返回指定列的樣本偏差(標準差)
covar_pop(col1, col2) 兩列數值協方差
如果兩個變量的變化趨勢一致,那么兩個變量之間的協方差就是正值;
如果兩個變量的變化趨勢相反,那么兩個變量之間的協方差就是負值;
如果X與Y是統計獨立的,那么二者之間的協方差就是0
covar_samp(col1, col2) 兩列數值樣本協方差
corr(col1, col2) 返回兩列數值的相關系數(偏差協方)
percentile(BIGINT col, p) 返回數值區域的百分比數值點。0<=P<=1,否則返回NULL,不支持浮點型數值。
第p百分位數,大約有p%的數據項的值比第p百分位數小
percentile(BIGINT col, array(p1 [, p2]…))
返回類型也為array<double>,其中為對應的百分位數
percentile_approx(DOUBLE col, p [, B]) 近似中位數函數(percentile的近似值)
參數B控制內存消耗的近似精度,B越大,結果的準確度越高。默認為10,000。
當col字段中的distinct值的個數小于B時,結果為準確的百分位數
percentile_approx(DOUBLE col, array(p1 [, p2]…) [, B])
histogram_numeric(col, b) 直方圖,
使用b個非均勻間隔的箱子計算組內數字列的柱狀圖(直方圖),
輸出的數組大小為b,double類型的(x,y)表示直方圖的中心和高度
返回值: array<struct {‘x’,‘y’}> [{"x":100.0,"y":1.0}]
select inline(histogram_numeric(cast(a.amount as int),10)) from a
collect_set(col) 返回消除了重復元素的數組
collect_list(col) 返回允許重復元素的數組
ntile(INTEGER x) 該函數將已經排序的分區分到x個桶中,并為每行分配一個桶號
★內置 Table-Generating函數(UDTF)
explode(ARRAY) 參數列為數組類型,將數組數據中的每個元素做為一行返回
explode(MAP) 將輸入map中的每個鍵值對轉換為兩列,一列為key,另一列為value,然后返回新行
explode(array<TYPE> a) 對于數組a中的每個元素,該函數產生包含該元素的行
json_tuple(jsonStr, k1, k2, ...) 參數為一組鍵k1,k2……和JSON字符串,返回值的元組。
該方法比 get_json_object 高效,因為可以在一次調用中輸入多個鍵
parse_url_tuple(url, p1, p2, ...) 該方法同parse_url() 相似,但可以一次性提取URL的多個部分,
有效的參數名稱為: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO, QUERY:<KEY>
posexplode(ARRAY) 行為與參數為數組的explode方法相似,但包含項在原始數組中的位置,返回(pos,value)的二元組
stack(INT n, v_1, v_2, ..., v_k) 將v_1, ..., v_k 分為n行,每行包含n/k列,n必須為常數
●在SELECT中不允許再有其他表達式:不支持SELECT pageid, explode(adid_list) AS myCol...
●UDTF不能夠嵌套使用:不支持SELECT explode(explode(adid_list)) AS myCol...
●不支持GROUP BY /CLUSTER BY / DISTRIBUTE BY / SORT BY
關于“hive有哪些聚合函數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。