hive聚合函數

★聚合函數
count,sum,min,max,avgjson

var_pop(col)    返回指定列的方差數組

var_samp(col)    返回指定列的樣本方差app

stddev_pop(col)    返回指定列的誤差(標準差)    stddev_pop = stddev函數

stddev_samp(col)    返回指定列的樣本誤差(標準差)url

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) 返回容許重複元素的數組get

ntile(INTEGER x) 該函數將已經排序的分區分到x個桶中,併爲每行分配一個桶號ast

★內置 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

相關文章
相關標籤/搜索