Hive學習之內建聚合函式
聚合函式
下表為Hive內建的聚合函式。
返回型別 |
函式名 |
描述 |
BIGINT |
count(*) count(expr) count(DISTINCT expr[, expr_.]) |
count(*) – 返回檢索到的行的總數,包括含有NULL值的行。count(expr) – 返回expr表示式不是NULL的行的數量count(DISTINCT expr[, expr]) – 返回expr是唯一的且非NULL的行的數量 |
DOUBLE |
sum(col) sum(DISTINCT col) |
對組內某列求和(包含重複值)或者對組內某列求和(不包含重複值) |
DOUBLE |
avg(col), avg(DISTINCT col) |
對組內某列元素求平均值者(包含重複值或不包含重複值) |
DOUBLE |
min(col) |
返回組內某列的最小值 |
DOUBLE |
max(col) |
返回組內某列的最大值 |
DOUBLE |
variance(col), var_pop(col) |
返回組內某個數字列的方差 |
DOUBLE |
var_samp(col) |
返回組內某個數字列的無偏樣本方差 |
DOUBLE |
stddev_pop(col) |
返回組內某個數字列的標準差 |
DOUBLE |
stddev_samp(col) |
返回組內某個數字列的無偏樣本標準差 |
DOUBLE |
covar_pop(col1, col2) |
返回組內兩個數字列的總體協方差 |
DOUBLE |
covar_samp(col1, col2) |
返回組內兩個數字列的樣本協方差 |
DOUBLE |
corr(col1, col2) |
返回組內兩個數字列的皮爾遜相關係數 |
DOUBLE |
percentile(BIGINT col, p) |
|
array<double> |
percentile(BIGINT col, array(p1 [, p2]...)) |
返回組內某個列精確的第p1,p2,……位百分數,p必須在0和1之間 |
DOUBLE |
percentile_approx(DOUBLE col, p [, B]) |
返回組內數字列近似的第p位百分數(包括浮點數),引數B控制近似的精確度,B值越大,近似度越高,預設值為10000。當列中非重複值的數量小於B時,返回精確的百分數 |
array<double> |
percentile_approx(DOUBLE col, array(p1 [, p2]...) [, B]) |
同上,但接受並返回百分數陣列 |
array<struct {'x','y'}> |
histogram_numeric(col, b) |
使用b個非均勻間隔的箱子計算組內數字列的柱狀圖(直方圖),輸出的陣列大小為b,double型別的(x,y)表示直方圖的中心和高度 |
array |
collect_set(col) |
返回消除了重複元素的陣列 |
array |
collect_list(col) |
返回允許重複元素的陣列 |
INTEGER |
ntile(INTEGER x) |
該函式將已經排序的分割槽分到x個桶中,併為每行分配一個桶號。這可以容易的計算三分位,四分位,十分位,百分位和其它通用的概要統計 |
內建 Table-Generating函式(UDTF)
正常的使用者定義函式,如concat,輸入一個單行然後輸出一個單行,但table-generating函式將一個單輸入行轉換為多個輸出行。下表為Hive內建的table-generating函式。
返回型別 |
函式名 |
描述 |
N rows |
explode(ARRAY) |
引數列為陣列型別,將陣列資料中的每個元素做為一行返回 |
N rows |
explode(MAP) |
將輸入map中的每個鍵值對轉換為兩列,一列為key,另一列為value,然後返回新行 |
inline(ARRAY<STRUCT[,STRUCT]>) |
分解struct陣列到表中 |
|
Array Type |
explode(array<TYPE> a) |
對於陣列a中的每個元素,該函式產生包含該元素的行For |
元組 |
json_tuple(jsonStr, k1, k2, ...) |
引數為一組鍵k1,k2……和JSON字串,返回值的元組。該方法比 |
元組 |
parse_url_tuple(url, p1, p2, ...) |
該方法同 |
N rows |
posexplode(ARRAY) |
行為與引數為陣列的explode方法相似,但包含項在原始陣列中的位置,返回(pos,value)的二元組 |
stack(INT n, v_1, v_2, ..., v_k) |
將v_1, ..., v_k 分為n行,每行包含n/k列,n必須為常數 |
使用語法”SELECT udtf(col) AS colAlias...”有以下幾點限制:
- 在SELECT中不允許再有其他表示式:不支援SELECT pageid, explode(adid_list) AS myCol...
- UDTF不能夠巢狀使用:不支援SELECT explode(explode(adid_list)) AS myCol...
- 不支援GROUP BY /CLUSTER BY / DISTRIBUTE BY / SORT BY:不支援SELECT explode(adid_list) AS myCol ... GROUP BY myCol
相關推薦
Hive學習之內建聚合函式
聚合函式 下表為Hive內建的聚合函式。 返回型別 函式名 描述 BIGINT count(*) count(expr) count(DISTINCT expr[, expr_.]) count(*) – 返回檢索到的行的總數,包括含有NULL值的行
百測學習之內建函式2和mysql的連線使用
一、遞迴 遞迴自己呼叫自己 遞迴時最多迴圈999次就不可以再迴圈了,一定要給出迴圈機會,沒有迴圈效率高 count=0 def abc(): global count count+=1 print(count) print('a
Hive內建聚合函式
聚合函式 下表為Hive內建的聚合函式。 返回型別 函式名 描述 BIGINT count(*) count(expr) count(DISTINCT expr[, expr_.]) count(*) – 返回檢索到的行的總數,包括
Hive Sum MAX MIN聚合函式
資料準備cookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-13,3cookie1,2015-04-14,2cookie1,2015-04-15,4cookie1,2015-04-16,4建立資料庫及表crea
GO基礎學習之內建基礎型別
1、Boolean 在Go中,布林值的型別為 bool ,值是 true 或 false ,預設為 false 。 // 示例程式碼 var isActive bool // 全域性變數宣告 var enabled, disabled = true, false func test() {
scala學習之內建控制結構->for語句
scala初學者,高手勿噴 O(∩_∩)O~ For 表示式 一、列舉集合類 程式碼: val fileHere = (new java.io.File("c:\\")).listFiles for(file <- fileHere) println(file)
深入學習MongoDB之聚合函式
集合中的資料有/* 1 */{ "_id" : ObjectId("5b496ee9497e95fe15e0b935"), "name" : "李四", "age" : NumberLong(12), "major" : "math", "add
Node.js學習之內建模組fs
IDE為VSCode .js內建的fs模組就是檔案系統模組,負責讀寫檔案 'use strict' var fs = require('fs'); //非同步讀取檔案(文字)編碼格式指定為ut
oracle學習筆記(聚合函式以及group by 和having 的用法)
今天學習了聚合函式以及group by 的用法。
Node.js學習之內建模組http
'use strict' //導包 var http = require('http'); var url = require('url') var path = require('path')
Hive使用者自定義聚合函式(UDAF)
使用者自定義聚合函式,使用者提供的多個入參通過聚合計算(求和、求最大值、求最小值)得到一個聚合計算結果的函式。 問題:UDF也可以提供輸入多個引數然後輸出一個結果的運算,比如加法運算add(3,5),add這個UDF需要實現UDF的evaluate方法,那麼UDF和UD
python初識之內建函式一
python的內建函式一共有68個,這裡先學習55個 作用域相關:locals()和globals() locals() 返回本地作用域中的所有名字 globals() 返回全域性作用域中的所有名字 迭代器生成器相關:range() 、iter()、next() range() 可迭
大資料學習之路90-sparkSQL自定義聚合函式UDAF
什麼是UDAF?就是輸入N行得到一個結果,屬於聚合類的。 接下來我們就寫一個求幾何平均數的一個自定義聚合函式的例子 我們從開頭寫起,先來看看需要進行計算的數如何產生: package com.test.SparkSQL import java.lang import org
day17 Pyhton學習 內建函式繼續
1. locals 本地作用域/區域性作用域 會隨著位置的改變而改變 2.globals 全域性作用域 永遠不變,永遠是全域性 3.complex:複數 實數(有理數和無理數) 某一個數的平方是-1 ,那麼這個數就是一個虛數的基礎單位 j # 複數 = 實數+虛
Python3之內建函式
內建函式 內建函式 一、內建函式定義及總數 python裡的內建函式。截止到python版本3.6.2,現在python一共為我們提供了68個內建函式。 Built-in Functions abs() dict() h
Python初識之內建函式二
資料結構相關 列表和元組:list()、tuple()、reversed()、slice() l=[1, 2, 3, 4, 5] l.reverse() # 列表順序反轉 l2 = reversed(l) # 得到一個反序的迭代器 print(l) print(l2)
【python基礎】常用的內建函式 python基礎之內建函式
python基礎之內建函式 參考: http://www.runoob.com/python/python-built-in-functions.html -zip() zip函式接受任意多個(包括0個和1個)序列作為引數,返回一個tuple列表 例項1: x = [1,
python基礎之內建函式與匿名函式
python基礎之內建函式與匿名函式 內建函式68個如下圖 重點的關注的內建函式len,sorted,enumerate,all,any,zip,filter,map,reversed,slice l
2018.9.10學習內建函式、切片、字串拼接等
今日練習: # 題目1:從網路上使用爬蟲程式得到下面字串: # zhangsan-18-175-70-python5;lisi-20-170-80-python5;wangwu-28-165-60-python3;zhaoliu-18-175-70-python5;xi
python之內建函式(二)與匿名函式、遞迴函式初識
一、內建函式(二)1、和資料結構相關(24)列表和元祖(2)list:將一個可迭代物件轉化成列表(如果是字典,預設將key作為列表的元素)。tuple:將一個可迭代物件轉化成元組(如果是字典,預設將key作為元組的元素) 2、相關內建函式(2)reversed:將一個序列翻轉,並返回此翻轉序列的迭代