日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HIVE函数集合(全)

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HIVE函数集合(全) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HIVE函數(shù)集合

函數(shù)名含義及實例
ABSabs(x) - 返回x的絕對值
示例:
? > SELECT abs(0)FROM src LIMIT 1;
? 0
? > SELECT abs(-5)FROM src LIMIT 1;
? 五
ACOSacos(x) - 如果-1 <= x <= 1則返回x的反余弦值,否則返回NULL
例如:
? > SELECT acos(1)FROM src LIMIT 1;
? 0
? > SELECT acos(2)FROM src LIMIT 1;
ADD_MONTHSadd_months(start_date,num_months) - 返回start_date之后的num_months日期。
start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_months是一個數(shù)字。start_date的時間部分被忽略。
示例:
? > SELECT add_months('2009-08-31',1)FROM src LIMIT 1;
?'2009-09-30'
AES_DECRYPTaes_decrypt(輸入二進制,密鑰字符串/二進制) - 使用AES解密輸入。
AES(高級加密標準)算法。可以使用128,192或256位的密鑰長度。如果安裝了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,則可以使用192和256位密鑰。如果任一參數(shù)為NULL或密鑰長度不是允許值之一,則返回值為NULL。
示例:> SELECT aes_decrypt(unbase64('y6Ss + zCYObpCbgfWfyNWTw =='),'1234567890123456');
?'ABC'
AES_ENCRYPTaes_encrypt(輸入字符串/二進制,密鑰字符串/二進制) - 使用AES加密輸入。
AES(高級加密標準)算法。可以使用128,192或256位的密鑰長度。如果安裝了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,則可以使用192和256位密鑰。如果任一參數(shù)為NULL或密鑰長度不是允許值之一,則返回值為NULL。
示例:> SELECT base64(aes_encrypt('ABC','1234567890123456'));
?'y6Ss + zCYObpCbgfWfyNWTw =='
anda1和a2和......以及 - 邏輯和
arrayarray(n0,n1 ...) - 使用給定元素創(chuàng)建數(shù)組?
array_containsarray_contains(array,value) - 如果數(shù)組包含值,則返回TRUE。
示例:
? > SELECT array_contains(array(1,2,3),2)FROM src LIMIT 1;
? 真正
ASCIIascii(str) - 返回str的第一個字符的數(shù)值
如果str為空則返回0;如果str為NULL,則返回NULL
示例:
? > SELECT ascii('222')FROM src LIMIT 1; 50
? > SELECT ascii(2)FROM src LIMIT 1;
? 50
asinasin(x) - 如果-1 <= x <= 1則返回x的反正弦,否則返回NULL
例如:
? > SELECT asin(0)FROM src LIMIT 1;
? 0
? > SELECT asin(2)FROM src LIMIT 1;
? 空值
ASSERT_TRUEassert_true(condition) - 如果'condition'不為真,則拋出異常。
示例:
?? > SELECT assert_true(x> = 0)FROM src LIMIT 1;
? 空值
atanatan(x) - 返回x的atan(arctan)(x是弧度)
示例:
?? > SELECT atan(0)FROM src LIMIT 1;
? 0
avgavg(x) - 返回一組數(shù)字的平均值
BASE64base64(bin) - 將參數(shù)從二進制轉換為base 64字符串
between在[NOT] BETWEEN b和c之間 - 評估a是否在b和c之間
binbin(n) - 返回二進制
n中的n是BIGINT。如果n為NULL,則返回NULL。
示例:
? > SELECT bin(13)FROM src LIMIT
? 1'1101'
bloom_filter函數(shù)'bloom_filter'沒有文檔
broundbround(x [,d]) - 使用HALF_EVEN舍入模式將x舍入到d小數(shù)位。
銀行家的四舍五入。該值四舍五入到最接近的偶數(shù)。也稱為高斯舍入。
示例:
? > SELECT bround(12.25,1);
? 12.2
cardinality_violationcardinality_violation(n0,n1 ...) - 引發(fā)基數(shù)違規(guī)
caseCASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END - When a = b, returns c; when a = d, return e; else return f
Example:
?SELECT
?CASE deptno
?? WHEN 1 THEN Engineering
?? WHEN 2 THEN Finance
?? ELSE admin
?END,
?CASE zone
?? WHEN 7 THEN Americas
?? ELSE Asia-Pac
?END
?FROM emp_details
CBRTcbrt(double) - 返回double值的立方根。
示例:
?> SELECT cbrt(27.0);
?3.0
ceilceil(x) - 求小于x的最小整數(shù)
同義詞:ceiling
示例:
? > SELECT ceil(-0.1)FROM src LIMIT 1;
? 0
? > SELECT ceil(5)FROM src LIMIT 1;
? 五
ceilingceiling(x) - 找到不小于x的最小整數(shù)
同義詞:ceil
例:
? > SELECT ceiling(-0.1)FROM src LIMIT 1;
? 0
? > SELECT ceiling(5)FROM src LIMIT 1;
? 五
CHAR_LENGTHchar_length(str | binary) - 返回str或二進制數(shù)據(jù)中的字符數(shù)
別名:character_length
示例:
? > SELECT char_length('HUX81')FROM src LIMIT 1;
? 五
CHARACTER_LENGTHcharacter_length(str | binary) - 返回str或二進制數(shù)據(jù)中的字符數(shù)
別名:char_length
示例:
? > SELECT character_length('HUX81')FROM src LIMIT 1;
? 五
CHRchr(str) - 將n中的n:[0,256]轉換為ascii等價物作為varchar。如果n小于0則返回空字符串。如果n> 256,則返回chr(n%256)。
示例:
? > SELECT chr('48')FROM src LIMIT 1;
? '0'
? > SELECT chr('65')FROM src LIMIT 1;
? '一個'
coalescecoalesce(a1,a2,...) - 返回第一個非空參數(shù)
示例:
? > SELECT coalesce(NULL,1,NULL)FROM src LIMIT 1;
? 1
collect_listcollect_list(x) - 返回具有重復項的對象列表
collect_setcollect_set(x) - 返回一組消除了重復元素的對象
compute_statscompute_stats(x) - 返回一組基本類型值的統(tǒng)計摘要。
CONCATconcat(str1,str2,... strN) - 返回str1,str2,... strN或concat(bin1,bin2,... binN)的串聯(lián) - 返回二進制數(shù)據(jù)bin1,bin2,...中的字節(jié)串聯(lián)。 .. binN
如果任何參數(shù)為NULL,則返回NULL。
示例:
? > SELECT concat('abc','def')FROM src LIMIT 1;
? 'ABCDEF'
CONCAT_WSconcat_ws(separator,[string | array(string)] +) - 返回由分隔符分隔的字符串的串聯(lián)。
示例:
? > SELECT concat_ws('。','www',array('facebook','com'))FROM src LIMIT 1;
? 'www.facebook.com'
context_ngramscontext_ngrams(expr,array <string1,string2,...>,k,pf)估計適合指定上下文的top-k最頻繁的n-gram。第二個參數(shù)指定一個字符串,用于指定n-gram元素的位置,其中空值表示必須由n-gram元素填充的“空白”。
主表達式必須是字符串數(shù)組或字符串數(shù)??組數(shù)組,例如句子()UDF的返回類型。第二個參數(shù)指定上下文 - 例如,數(shù)組(“i”,“l(fā)ove”,null) - 它將估計主表達式中“i love”短語后面的頂部“k”字。可選的第四個參數(shù)'pf'控制啟發(fā)式使用的內存。值越大,精度越高,但要使用更多內存。用法示例:
? SELECT context_ngrams(句子(lower(review)),array(“i”,“l(fā)ove”,null,null),10)FROM電影
會嘗試確定“我愛”之后的10個最常見的雙字短語自由形式自然語言電影評論數(shù)據(jù)庫。
CONVconv(num,from_base,to_base) - 將num從from_base轉換為to_base
如果to_base為負數(shù),則將num視為有符號整數(shù),否則將其視為無符號整數(shù)。
示例:
? > SELECT conv('100',2,10)FROM src LIMIT 1;
? '4'
? > SELECT conv(-10,16,-10)FROM src LIMIT 1;
? '16'
corrcorr(y,x) - 返回
一組數(shù)字對之間的Pearson相關系數(shù)
該函數(shù)將任意一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。
如果N * SUM(y * y)= SUM(y)* SUM(y):返回NULL。
否則,它計算以下內容:
?? COVAR_POP(x,y)/(STDDEV_POP(x)* STDDEV_POP(y))
其中x和y都不為空,
COVAR_POP是總體協(xié)方差,
STDDEV_POP是總體標準差。
COScos(x) - 返回x的余弦值(x是弧度)
示例:
?? > SELECT cos(0)FROM src LIMIT 1;
? 1
countcount(*) - 返回檢索到的行的總數(shù),包括包含NULL值的行。
count(expr) - 返回提供的表達式為非NULL的行數(shù)。
count(DISTINCT expr [,expr ...]) - 返回提供的表達式唯一且非NULL的行數(shù)。
Covr_popcovar_pop(x,y) - 返回一組數(shù)字對的總體協(xié)方差
該函數(shù)將任意一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。如果該函數(shù)應用于空集,
則返回NULL 。否則,它計算以下內容:
?? (SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/ COUNT(x,y)
其中x和y都不為空。
Covr_sampcovar_samp(x,y) - 返回一組數(shù)字對的樣本協(xié)方差
該函數(shù)將任意一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果應用于具有單個元素的集合:將返回NULL。
否則,它計算以下內容:
?? (SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/(COUNT(x,y)-1)
其中x和y都不為null 。
1
CRC32crc32(str或bin) - 計算字符串或二進制參數(shù)的循環(huán)冗余校驗值并返回bigint值。
示例:
? > SELECT crc32('ABC');
? 2743272264
? > SELECT crc32(binary('ABC'));
? 2743272264
create_unioncreate_union(tag,obj1,obj2,obj3,...) - 使用給定標記的對象創(chuàng)建一個聯(lián)合
示例:
? > SELECT create_union(1,1,“one”)FROM src LIMIT 1;
? 一
CUME_DIST函數(shù)'cume_dist'沒有文檔
current_databasecurrent_database() - 當前使用數(shù)據(jù)庫名稱返回
current_databasecurrent_date() - 返回查詢評估開始時的當前日期。同一查詢中current_date的所有調用都返回相同的值。
CURRENT_TIMESTAMPcurrent_timestamp() - 返回查詢評估開始時的當前時間戳。同一查詢中的current_timestamp的所有調用都返回相同的值
current_usercurrent_user() - 返回當前用戶名
DATE_ADDdate_add(start_date,num_days) - 返回start_date之后的num_days日期。
start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_days是一個數(shù)字。start_date的時間部分被忽略。
示例:
?? > SELECT date_add('2009-07-30',1)FROM src LIMIT 1;
? '2009-07-31'
date_formatdate_format(date / timestamp / string,fmt) - 以日期格式fmt指定的格式將日期/時間戳/字符串轉換為字符串值。
支持的格式是SimpleDateFormat格式 - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html。第二個參數(shù)fmt應該是常量。
示例:> SELECT date_format('2015-04-08','y');
?'2015'
DATE_SUBdate_sub(start_date,num_days) - 返回start_date之前的num_days日期。
start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_days是一個數(shù)字。start_date的時間部分被忽略。
示例:
?? > SELECT date_sub('2009-07-30',1)FROM src LIMIT 1;
? '2009-07-29'
DATEDIFFdatediff(date1,date2) - 返回date1和date2之間的天數(shù)
date1和date2是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。時間部分被忽略。如果date1早于date2,則結果為負。
示例:
?? > SELECT datediff('2009-07-30','2009-07-31')FROM src LIMIT 1;
? 1
dayday(param) - 返回日期/時間戳的月份日期或間隔的日期組件
同義詞:dayofmonth
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'的字符串或'yyyy-MM-dd'。
2.日期值
3.時間戳值
4.日間隔時間值示例:
?? > SELECT day('2009-07-30')FROM src LIMIT 1;
? 三十
DAYOFMONTHdayofmonth(param) - 返回日期/時間戳的月份日期或間隔的日期組成部分
別名:day
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'的字符串或'yyyy-MM-dd'。
2.日期值
3.時間戳值
4.日間隔時間值示例:
?? > SELECT dayofmonth('2009-07-30')FROM src LIMIT 1;
? 三十
dayofweekdayofweek(param) - 返回日期/時間戳的星期幾(1 =星期日,2 =星期一,...,7 =星期六)
param可以是以下之一:
1。格式為'yyyy-MM的字符串-dd HH:mm:ss'或'yyyy-MM-dd'。
2.日期值
3.時間戳值示例:
?? > SELECT dayofweek ('2009-07-30')FROM src LIMIT 1;
? 五
decodedecode(bin,str) - 使用第二個參數(shù)字符集解碼第一個參數(shù)字符集的
可能選項是'US-ASCII','ISO-8859-1',
'UTF-8','UTF-16BE', 'UTF-16LE'和'UTF-16'。如果任一參數(shù)
為null,則結果也將為null
degreesdegrees(x) - 將弧度轉換為度數(shù)
示例:
? > SELECT degrees(30)FROM src LIMIT 1;
? -1
DENSE_RANK函數(shù)'dense_rank'沒有文檔
DIVa div b - 將a除以b舍入為長整數(shù)
示例:
? > SELECT 3 div 2 FROM src LIMIT 1;
? 1
ee() - 返回E
示例:
?> SELECT e()FROM src LIMIT 1;
?2.718281828459045
eltelt(n,str1,str2,...) - 返回第n個字符串
例如:
? > SELECT elt(1,'face','book')FROM src LIMIT 1;
? '面對'
encodeencode(str,str) - 使用第二個參數(shù)字符集對第一個參數(shù)進行編碼字符集的
可能選項是“US-ASCII”,“ISO-8859-1”,
“UTF-8”,“UTF-16BE”, 'UTF-16LE'和'UTF-16'。如果任一參數(shù)
為null,則結果也將為null
ewah_bitmapewah_bitmap(expr) - 返回列的EWAH壓縮位圖表示。
ewah_bitmap_andewah_bitmap_and(b1,b2) - 返回EWAH壓縮的位圖,該位圖是兩個位圖的按位AND。
ewah_bitmap_emptyewah_bitmap_empty(bitmap) - 測試EWAH壓縮位圖是否全為零的謂詞
ewah_bitmap_orewah_bitmap_or(b1,b2) - 返回EWAH壓縮位圖,該位圖是兩個位圖的按位OR。
EXPexp(x) - 返回e到x的冪的
例子:
?? > SELECT exp(0)FROM src LIMIT 1;
? 1
explodeexplode(a) - 將數(shù)組a的元素分成多行,或將map的元素分成多個行和列
extract_unionextract_union(union [,tag]) - 遞歸地將聯(lián)合分解為結構或簡單地提取給定的標記。
? > SELECT extract_union({0:“foo”})。tag_0 FROM src;
? foo
? > SELECT extract_union({0:“foo”})。tag_1 FROM src;
? null
? > SELECT extract_union({0:“foo”},0)FROM src;
? foo
? > SELECT extract_union({0:“foo”},1)FROM src;
? 空值
factorialfactorial(int) - 返回n階乘。有效n為[0..20]。
如果n超出[0..20]范圍,則??返回null。
示例:
?> SELECT factorial(5);
?120
fieldfield(str,str1,str2,...) - 返回str1,str2,...列表中str的索引或0如果未找到
則支持所有基元類型,使用str.equals(x)比較參數(shù)。如果str為NULL,則返回值為0。
FIND_IN_SETfind_in_set(str,str_array) - 返回str_array中str的第一個匹配項,其中str_array是逗號分隔的字符串。如果任一參數(shù)為null,則返回null。如果第一個參數(shù)有逗號,則返回0。
示例:
? > SELECT find_in_set('ab','abc,b,ab,c,def')FROM src LIMIT 1;
? 3
? > SELECT * FROM src1 WHERE NOT find_in_set(key,'311,128,345,956')= 0;
? 311 val_311
? 128
FIRST_VALUE函數(shù)'first_value'沒有文檔
floorfloor(x) - 查找不大于x的最大整數(shù)
示例:
? > SELECT floor(-0.1)FROM src LIMIT 1;
? -1
? > SELECT floor(5)FROM src LIMIT 1;
? 五
floor_dayfloor_day(param) - 返回一天的時間戳粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_day(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-dd 00:00:00
floor_hourfloor_hour(param) - 返回一小時的時間戳粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_hour(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-dd HH:00:00
floor_minutefloor_minute(param) - 返回一分鐘時間戳,粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_minute(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-dd HH:mm:00
floor_monthfloor_month(param) - 返回一個月的時間戳粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_month(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-01 00:00:00
floor_quarterfloor_quarter(param) - 返回四分之一粒度
param的時間戳需要是一個時間戳值
示例:
?? > SELECT floor_quarter(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-xx-01 00:00:00
5
floor_secondfloor_second(param) - 返回第二個粒度
參數(shù)的時間戳需要是時間戳值
示例:
?? > SELECT floor_second(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-dd HH:mm:ss
floor_weekfloor_week(param) - 返回一周的時間戳粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_week(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-MM-xx 00:00:00
floor_yearfloor_year(param) - 返回一年中的時間戳粒度
param需要是一個時間戳值
示例:
?? > SELECT floor_year(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src;
? yyyy-01-01 00:00:00
format_numberformat_number(X,D或F) - 將數(shù)字X格式化為'#,###,###。##'等格式,舍入到D小數(shù)位,或者使用指定格式F格式化,并返回結果作為字符串。如果D為0,則結果沒有小數(shù)點或小數(shù)部分。這應該像MySQL的FORMAT
示例:
? > SELECT format_number(12332.123456,4)FROM src LIMIT 1;
? '12,332.1235'
? > SELECT format_number(12332.123456,'##################。###')FROM src LIMIT 1;
? '12332.123'
FROM_UNIXTIMEfrom_unixtime(unix_time,format) - 以指定的格式返回unix_time
示例:
? > SELECT from_unixtime(0,'yyyy-MM-dd HH:mm:ss')FROM src LIMIT 1;
? '1970-01-01 00:00:00'
from_utc_timestampfrom_utc_timestamp(timestamp,string timezone) - 假設給定的時間戳是UTC并轉換為給定的時區(qū)(從Hive 0.8.0開始)
get_json_objectget_json_object(json_txt,path) - 從路徑中
提取json對象從基于指定的json路徑的json字符串中提取json對象,并返回提取的json對象的json字符串。如果輸入json字符串無效,它將返回null。
支持的JSONPath限制版本:
? $:Root對象
? 。:子運算符
? []:數(shù)組
? *的下標運算符:[]
不支持的通配符值得注意:
? '':作為鍵的零長度字符串
? ..:遞歸下降
? &amp;#064; :當前對象/元素
? ():腳本表達式
? ?():過濾器(腳本)表達式。
? [,]:聯(lián)盟運營商
? [start:end:step]:數(shù)組切片運算符
get_splitsget_splits(string,int) - 返回引用的表字符串的長度為int serialized的數(shù)組。
maximummaximum(v1,v2,...) - 返回值列表中的最大值
示例:
? > SELECT maximum(2,3,1)FROM src LIMIT 1;
? 3
groupinggrouping(a,b) - 指示是否聚合指定的列表達式。返回1表示聚合,0表示未聚合。
a是分組ID,b是我們要提取的索引
hashhash(a1,a2,...) - 返回參數(shù)的哈希值
hexhex(n,bin或str) - 將參數(shù)轉換為十六進制
如果參數(shù)是字符串,則為字符串中的每個字符返回兩個十六進制數(shù)字。
如果參數(shù)是數(shù)字或二進制,則返回十六進制表示。
示例:
? > SELECT hex(17)FROM src LIMIT 1;
? 'H1'
? > SELECT hex('Facebook')FROM src LIMIT 1;
? '46616365626F6F6B'
histogram_numerichistogram_numeric(expr,nb) - 使用nb bin計算數(shù)字'expr'的直方圖。
示例:
> SELECT histogram_numeric(val,3)FROM src;
[{ “×”:100, “Y”:14.0},{ “×”:200, “Y”:22.0},{ “×”:290.5, “Y”:11.0}]
返回值是表示直方圖區(qū)間中心的(x,y)對數(shù)組。隨著'nb'的值增加,直方圖近似得到更細粒度,但可能會產生異常值周圍的偽影。在實踐中,20-40個直方圖箱似乎運行良好,傾斜或較小的數(shù)據(jù)集需要更多的箱。請注意,此函數(shù)會創(chuàng)建一個具有非均勻bin寬度的直方圖。它不能保證直方圖的均方誤差,但實際上與R / S-Plus統(tǒng)計計算包產生的直方圖相當。
hourhour(param) - 返回字符串/ timestamp / interval的小時組件
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'或'HH:mm:ss'的字符串。
2.時間戳值
3.日間隔值示例:
?? > SELECT hour('2009-07-30 12:58:59')FROM src LIMIT 1;
? 12
? > SELECT hour('12:58:59') from src LIMIT 1;
? 12
ifIF(expr1,expr2,expr3) - 如果expr1為TRUE(expr1 <> 0且expr1 <> NULL)則IF()返回expr2; 否則返回expr3。IF()返回數(shù)值或字符串值,具體取決于使用它的上下文。
test intest in(val1,val2 ...) - 如果test等于任何valN,則返回true
in_bloom_filter
in_file中in_file(str,filename) - 如果str出現(xiàn)在文件中,則返回true
indexindex(a,n) - 返回a的第n個元素
INITCAPinitcap(str) - 返回str,每個單詞的第一個字母用大寫字母表示,所有其他字母用小寫字母表示。單詞由空格分隔。
示例:
?> SELECT initcap('tHe soap')FROM src LIMIT 1;
?'肥皂'
inlineinline(ARRAY(STRUCT()[,STRUCT()] - 將數(shù)據(jù)和結構分解為表
INSTRinstr(str,substr) - 返回str中第一次出現(xiàn)substr的索引
例如:
? > SELECT instr('Facebook','boo')FROM src LIMIT 1;
? 五
internal_intervalinternal_interval(intervalType,intervalArg)
此方法不是設計用于直接調用它 - 它為'INTERVAL(intervalArg)intervalType'構造提供內部支持
isnotnullisnotnull a - 如果a不為NULL則返回true,否則返回false
isnull aisnull a - 如果a為NULL則返回true,否則返回false
java_methodjava_method(class,method [,arg1 [,arg2 ..]])使用反射調用方法
同義詞:reflect
使用此UDF通過匹配參數(shù)簽名來調用Java方法
json_tuplejson_tuple(jsonStr,p1,p2,...,pn) - 與get_json_object類似,但它需要多個名稱并返回一個元組。所有輸入參數(shù)和輸出列類型都是字符串。
函數(shù)類:org.apache.hadoop.hive.ql.udf.generic.GenericUDTFJSONTuple
LAGLAG(scalar_expression [,offset] [,default])OVER([query_partition_clause] order_by_clause); LAG函數(shù)用于訪問前一行的數(shù)據(jù)。
示例:
?選擇p1.p_mfgr,p1.p_name,p1.p_size,
?p1.p_size - lag(p1.p_size,1,p1.p_size)over(由p1.p_mfgr按p1.p_name排序)作為deltaSz
?從part p1 join p1.p_partkey = p2.p_partkey上的p2部分
last_daylast_day(date) - 返回日期所屬月份的最后一天。
date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。日期的時間部分被忽略。
示例:
? > SELECT last_day('2009-01-12')FROM src LIMIT 1;
?'2009-01-31'
LAST_VALUE
LCASElcase(str) - 返回str,所有字符都改為小寫
同義詞:lower
示例:
? > SELECT lcase('Facebook')FROM src LIMIT 1;
? “Facebook的
leadLEAD(scalar_expression [,offset] [,default])OVER([query_partition_clause] order_by_clause); LEAD函數(shù)用于從下一行返回數(shù)據(jù)。
示例:
?選擇p_name,p_retailprice,lead(p_retailprice)over()為l1,
?lag(p_retailprice)over()為l2
?,
?其中p_retailprice = 1173.15
leastleast(v1,v2,...) - 返回值列表中的最小值
示例:
? > SELECT least(2,3,1)FROM src LIMIT 1;
? 1
lengthlength(str | binary) - 返回str的長度或二進制數(shù)據(jù)中的字節(jié)數(shù)
示例:
? > SELECT length('Facebook')FROM src LIMIT 1;
? 8
levenshteinlevenshtein(str1,str2) - 該函數(shù)計算兩個弦之間的Levenshtein距離。
Levenshtein距離是用于測量兩個序列之間差異的字符串度量。非正式地,兩個單詞之間的Levenshtein距離是將一個單詞改為另一個單詞所需的單字符編輯(即插入,刪除或替換)的最小數(shù)量。它以弗拉基米爾·萊文
? 斯坦(Vladimir Levenshtein)的名字命名,他在1965年考慮過這個距離。例如:>選擇levenshtein('小貓','坐著');
?3
likelike(str,pattern) - 檢查str是否匹配模式
示例:
? > SELECT a.* FROM srcpart a WHERE a.hr like'%2'LIMIT 1;
? 27 val_27 2008-04-08 12
LNln(x) - 返回x的自然對數(shù)
示例:
? > SELECT ln(1)FROM src LIMIT 1;
? 0
locatelocate(substr,str [,pos]) - 返回位置pos后str中第一次出現(xiàn)substr的位置
示例:
? > SELECT locate('bar','foobarbar',5)FROM src LIMIT 1;
? 7
loglog([b],x) - 返回x與base b的對數(shù)
示例:
? > SELECT log(13,13)FROM src LIMIT 1;
? 1
LOG10log10(x) - 返回x的基數(shù)為10的對數(shù)
示例:
? > SELECT log10(10)FROM src LIMIT 1;
? 1
LOG2log2(x) - 返回x的基數(shù)為2的對數(shù)
示例:
? > SELECT log2(2)FROM src LIMIT 1;
? 1
LOGGED_IN_USERlogged_in_user() - 返回登錄的用戶名
SessionState GetUserName - 會話初始化時提供的用戶名
lowerlower(str) - 返回str,所有字符都改為小寫
同義詞:lcase
示例:
? > SELECT lower('Facebook')FROM src LIMIT 1;
? “Facebook的
LPADlpad(str,len,pad) - 返回str,左邊用pad填充長度為len
如果str長于len,則返回值縮短為len個字符。
如果是空填充字符串,則返回值為null。
示例:
? > SELECT lpad('hi',5,'??')FROM src LIMIT 1;
? '??? hi'
? > SELECT lpad('hi',1,'??')FROM src LIMIT 1;
? 'h'
? > SELECT lpad('hi',5,'')FROM src LIMIT 1;
? 空值
LTRIMltrim(str) - 從str中刪除前導空格字符
例如:
? > SELECT ltrim('facebook')FROM src LIMIT 1;
? “Facebook的
lowerlower(key0,value0,key1,value1 ...) - 創(chuàng)建具有給定鍵/值對的映射?
map_keysmap_keys(map) - 返回包含輸入映射鍵的無序數(shù)組
map_valuesmap_values(map) - 返回包含輸入映射值的無序數(shù)組。
mask掩蓋給定值
示例:
?? mask(ccn)
?? mask(ccn,'X','x','0')
?? mask(ccn,'x','x','x')
?參數(shù):
?? mask(value,upperChar, lowerChar,digitChar,otherChar,numberChar,dayValue,monthValue,yearValue)
???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR,DATE
???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:'
???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x'
???? digitChar - 用數(shù)字字符替換的字符。指定-1以保留原始字符。默認值:'
???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1
???? numberChar - 用數(shù)字替換數(shù)字的字符。有效值:0-9。默認值:'
???? 1'dayValue - 用日期替換日期字段的值。指定-1以保留原始值。有效值:1-31。默認值:1
???? monthValue - 用日期替換日期中的月份字段的值。指定-1以保留原始值。有效值:0-11。默認值:0
???? yearValue - 用日期替換年份字段的值。指定-1以保留原始值。默認值:0
mask_first_n掩蓋值的前n個字符
示例:
?? mask_first_n(ccn,8)
?? mask_first_n(ccn,8,'x','x','x')
?參數(shù):
?? mask(value,charCount,upperChar,lowerChar,digitChar,otherChar, numberChar)
???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR
???? charCount - 字符數(shù)。默認值:4
???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:'
???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x'
???? digitChar - 用數(shù)字字符替換的字符。指定-1以保留原始字符。默認值:'
???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1
???? numberChar - 用數(shù)字替換數(shù)字的字符。有效值:0-9。默認值:'1'
mask_hash返回給定值的哈希值
示例:
?? mask_hash(value)
?參數(shù):
?? value - 要掩碼的值。支持的類型:STRING,VARCHAR,CHAR
mask_last_n屏蔽值的最后n個字符
示例:
?? mask_last_n(ccn,8)
?? mask_last_n(ccn,8,'x','x','x')
?參數(shù):
?? mask_last_n(value,charCount,upperChar,lowerChar,digitChar,otherChar, numberChar)
???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR
???? charCount - 字符數(shù)。默認值:4
???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:'
???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x'
???? digitChar - 用數(shù)字字符替換的字符。指定-1以保留原始字符。默認值:'
???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1
????? numberChar - 用數(shù)字替換數(shù)字的字符。有效值:0-9。默認值:'1'
mask_show_first_n掩碼除了值的前n個字符以外的所有字符
示例:
?? mask_show_first_n(ccn,8)
?? mask_show_first_n(ccn,8,'x','x','x')
?參數(shù):
?? mask_show_first_n(value,charCount,upperChar,lowerChar,digitChar,otherChar ,numberChar)
???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR
???? charCount - 字符數(shù)。默認值:4
???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:'
???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x'
???? digitChar - 用數(shù)字字符替換的字符。指定-1以保留原始字符。默認值:'
???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1
???? numberChar - 用數(shù)字替換數(shù)字的字符。有效值:0-9。默認值:'1'
mask_show_last_n掩碼除了值的最后n個字符之外的所有
例子:
?? mask_show_last_n(ccn,8)
?? mask_show_last_n(ccn,8,'x','x','x')
?參數(shù):
?? mask_show_last_n(value,charCount,upperChar,lowerChar,digitChar,otherChar ,numberChar)
???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR
???? charCount - 字符數(shù)。默認值:4
???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:'
???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x'
???? digitChar - 用數(shù)字字符替換的字符。指定-1以保留原始字符。默認值:'
???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1
???? numberChar - 用數(shù)字替換數(shù)字的字符。有效值:0-9。默認值:'1'
matchpath
maxmax(expr) - 返回expr的最大值
MD5md5(str或bin) - 為字符串或二進制文件計算MD5 128位校驗和。
該值以32個十六進制數(shù)字的字符串形式返回,如果參數(shù)為NULL,則返回NULL。
示例:
? > SELECT md5('ABC');
? '902fbdd2b1df0c4f70b4a5d23525e932'
? > SELECT md5(二進制('ABC'));
? '902fbdd2b1df0c4f70b4a5d23525e932'
minmin(expr) - 返回expr的最小值
minuteminute(param) - 返回字符串/ timestamp / interval的分鐘組件
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'或'HH:mm:ss'的字符串。
2.時間戳值
3.日間隔值示例:
?? > SELECT分鐘('2009-07-30 12:58:59')FROM src LIMIT 1;
? 58
? > SELECT分鐘('12:58:59')from src LIMIT 1;
? 58
moda mod b - 當除以b時返回余數(shù)
同義詞:%
monthmonth(param) - 返回日期/時間戳/間隔的月份組件
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。
2.日期值
3.時間戳值
4.年 - 月間隔值示例:
? > SELECT月('2009-07-30')FROM src LIMIT 1;
? 7
MONTHS_BETWEENmonths_between(date1,date2,roundOff) - 返回date1和date2之間的月數(shù)。
如果date1晚于date2,則結果為正。如果date1早于date2,則結果為負數(shù)。如果date1和date2是該月的同一天或兩個月的最后幾天,則結果始終為整數(shù)。否則,UDF將根據(jù)31天的月份計算結果的小數(shù)部分,并考慮時間組件date1和date2的差異。
date1和date2類型可以是日期,時間戳或字符串,格式為'yyyy-MM-dd'或'yyyy-MM-dd HH:mm:ss'。結果默認舍入為8位小數(shù)。否則設置roundOff = false。
?示例:
? > SELECT months_between('1997-02-28 10:30:00','
?3.94959677
named_structnamed_struct(name1,val1,name2,val2,...) - 使用給定的字段名稱和值創(chuàng)建結構
negativenegative a - 返回-a
next_daynext_day(start_date,day_of_week) - 返回晚于start_date并按指示命名的第一個日期。
start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。day_of_week是星期幾(例如,Mo,星期五,星期五)。例如:
? > SELECT next_day('2015-01-14','TU')FROM src LIMIT 1;
?“2015年1月20日”
ngramsngrams(expr,n,k,pf) - 估計由字符串序列組成的行中的前k個n-gram,表示為字符串數(shù)組或字符串數(shù)??組數(shù)組。'pf'是一個可選的精度因子,用于控制內存使用量。
參數(shù)'n'指定估計什么類型的n-gram。Unigrams是n = 1,并且bigrams是n = 2.通常,n不會大于約5.'k'參數(shù)指定UDAF將返回多少個最高頻率的n-gram。可選的精度因子'pf'指定用于估計的內存量; 更多的內存將提供更準確的頻率計數(shù),但可能會使JVM崩潰。默認值為20,內部保持20 * k n-gram,但僅返回k個最高頻率的值。輸出是一組具有前n個n-gram的結構。爆炸()這個UDAF的輸出可能很方便。
noop
noopstreaming
noopwithmap
noopwithmapstreaming
notnot a - 邏輯而不是同義詞:!
ntile
NULLIFSELECT nullif(1,1),nullif(1,2)
NVLnvl(value,default_value) - 如果value為null則返回默認值,否則返回value
示例:
? > SELECT nvl(null,'bla')FROM src LIMIT 1;
? BLA
OCTET_LENGTHoctet_length(str | binary) - 返回str或二進制數(shù)據(jù)中的字節(jié)數(shù)
示例:
? > SELECT octet_length('HUX8 ')FROM src LIMIT 1;
? 15
ora1或a2或......或 - 邏輯或
parse_urlparse_url(url,partToExtract [,key]) - 從URL中提取
部件:HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE,USERINFO
鍵指定要提取的查詢
示例:
? > SELECT parse_url('http:/ /facebook.com/path/p1.php?query=1','HOST')FROM src LIMIT 1;
? 'facebook.com'
? > SELECT parse_url('http://facebook.com/path/p1.php?query=1','QUERY')from src LIMIT 1;
? 'query = 1'
? > SELECT parse_url('http://facebook.com/path/p1.php?query=1','QUERY','query')FROM src LIMIT 1;
? '1'
parse_url_tupleparse_url_tuple(url,partname1,partname2,...,partnameN) - 從URL中提取N(N> = 1)個部分。
它需要一個URL和一個或多個部件名,并返回一個元組。所有輸入參數(shù)和輸出列類型都是字符串。
部件名稱:HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE,USERINFO,QUERY:<KEY_NAME>
注意:部件名區(qū)分大小寫,不應包含不必要的空格。
示例:
? > SELECT b。* FROM src LATERAL VIEW parse_url_tuple(fullurl,'HOST','PATH','QUERY','QUERY:id')b as host,path,query,query_id LIMIT 1;
? > SELECT parse_url_tuple(a.fullurl,'HOST','PATH','QUERY','REF','PROTOCOL','FILE','AUTHORITY','
PERCENT_RANK
percentilepercentile(expr,pc) - 返回pc上expr的百分位數(shù)(范圍:[0,1])。pc可以是double或double數(shù)組
percentile_approxpercentile_approx(expr,pc,[nb]) - 對于非常大的數(shù)據(jù),使用可選參數(shù)[nb]作為要使用的直方圖區(qū)間數(shù),從直方圖計算近似百分位數(shù)值。較高的nb值導致更準確的近似,代價是更高的內存使用量。
'expr'可以是任何數(shù)字列,包括雙精度和浮點數(shù),'pc'可以是具有請求百分位數(shù)的單個double / float,也可以是具有多個百分位數(shù)的double / float數(shù)組。如果未指定'nb',則默認近似值使用10,000個直方圖區(qū)間,這意味著如果'expr'中有10,000個或更少的唯一值,則可以獲得精確的結果。百分位數(shù)()函數(shù)總是計算精確百分位數(shù),如果列中有太多唯一值,則可能會耗盡內存,這就需要此功能。
示例(使用更精細的直方圖近似請求三個百分位數(shù)):
> SELECT percentile_approx(val,array(0.5,0.95,0.98),100000)FROM somedata;
[0.05,1.64,2.26]
pipi() - 返回pi
示例:
?> SELECT pi()FROM src LIMIT 1;
?3.14159 ...
PMODa pmod b - 計算正模數(shù)
posexplodeposexplode(a) - 表現(xiàn)得像數(shù)組爆炸,但包括原始數(shù)組中項目的位置
positivepositive a - 返回a
POWpow(x1,x2) - 將x1提升到x2的冪。
同義詞:power
例如:
? > SELECT pow(2,3)FROM src LIMIT 1;
? 8
powerpower(x1,x2) - 將x1提升到x2的冪。
同義詞:pow
示例:
? > SELECT power(2,3)FROM src LIMIT 1;
? 8
printfprintf(String format,Obj ... args) - 可以根據(jù)printf樣式格式字符串格式化字符串的 ? 函數(shù)
示例:
> SELECT printf(“Hello World%d%s”,100,“days”)FROM src LIMIT 1;
? “Hello World 100天”
quarterquarter(date / timestamp / string) - 返回日期的季度,范圍為1到4.
示例:> SELECT quarter('2015-04-08');
?2
radiansradians(x) - 將度數(shù)轉換為弧度
例如:
? > SELECT radians(90)FROM src LIMIT 1;
? 1.5707963267949mo
randrand([seed]) - 返回0到1之間的偽隨機數(shù)
rank
reflectreflect(class,method [,arg1 [,arg2 ..]])使用反射調用方法
同義詞:java_method
使用此UDF通過匹配參數(shù)簽名來調用Java方法
reflect2reflect2(arg0,method [,arg1 [,arg2 ..]])使用反射調用arg0的方法
使用此UDF通過匹配參數(shù)簽名來調用Java方法
regexpstr regexp regexp - 如果str匹配regexp則返回true,否則返回false
同義詞:rlike
示例:
? > SELECT'fb'reexx ''*'FROM src LIMIT 1;
? 真正
REGEXP_EXTRACTregexp_extract(str,regexp [,idx]) - 提取與regexp匹配的組
示例:
? > SELECT regexp_extract('100-200','(\ d +) - (\ d +)',1)FROM src LIMIT 1;
? '100'
REGEXP_REPLACEregexp_replace(str,regexp,rep) - 將與regexp匹配的str的所有子串替換為rep
示例:
? > SELECT regexp_replace('100-200','(\ d +)','num')FROM src LIMIT 1;
? 'NUM-NUM'
REGR_AVGXegr_avgx(y,x) - 計算自變量的平均值。
該函數(shù)將任意一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
否則,它計算以下內容:
?? AVG(X)
REGR_AVGYregr_avgy(y,x) - 計算因變量的平均值。
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
否則,它會計算以下內容:
?? AVG(Y)
REGR_COUNTregr_count(y,x) - 返回非空對的數(shù)量
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回long。
任何具有NULL的對都將被忽略。
REGR_INTERCEPTregr_intercept(y,x) - 返回回歸線的y軸截距。
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。
否則,它計算以下內容:
?? (SUM(y)* SUM(x * x)-SUM(X)* SUM(x * y))/(N * SUM(x * x)-SUM(x)* SUM( X) )
REGR_R2regr_r2(y,x) - 返回回歸線的確定系數(shù)(也稱為R平方或擬合度)。
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。
如果N * SUM(y * y)= SUM(y)* SUM(y):返回1。
否則,它計算以下內容:
?? POWER(N * SUM(x * y)-SUM(x)* SUM(y),2)/((N * SUM(x * x)-SUM(x)* SUM(x ))*(N * SUM(y * y)-SUM(y)* SUM(y)))
REGR_SLOPEregr_slope(y,x) - 返回線性回歸線的斜率
該函數(shù)將任意一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL(擬合將是垂直的)。
否則,它計算如下:
?? (N * SUM(x * y)-SUM(x)* SUM(y))/(N * SUM(x * x)-SUM(x)* SUM(x))
REGR_SXXregr_sxx(y,x) - 輔助分析函數(shù)
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
否則,它計算以下內容:
?? SUM(x * x)-SUM(x)* SUM(x)/ N.
REGR_SXYregr_sxy(y,x) - 返回一個值,該值可用于評估回歸模型的統(tǒng)計有效性。
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。
否則,它計算以下內容:
?? SUM(x * y)-SUM(x)* SUM(y)/ N.
REGR_SYYregr_syy(y,x) - 輔助分析函數(shù)
該函數(shù)將任何一對數(shù)字類型作為參數(shù),并返回一個double。
任何具有NULL的對都將被忽略。
如果應用于空集:返回NULL。
否則,它計算以下內容:
?? SUM(y * y)-SUM(y)* SUM(y)/ N.
repeatrepeat(str,n) - 重復str n次
示例:
? > SELECT repeat('123',2)FROM src LIMIT 1;
? '123123'
replacereplace(str,search,rep) - 將'search'與'rep'匹配的所有子串替換為'rep'
示例:
? > SELECT replace('Hack and Hue','H','BL')FROM src LIMIT 1;
? 'BLACK和BLUE'
replicate_rowsreplicate_rows(n,cols ...) - 將1行變?yōu)閚行
reversereverse(str) - reverse str
示例:
? > SELECT reverse('Facebook')FROM src LIMIT 1;
? 'koobecaF'
RLIKEstr rlike regexp - 如果str匹配regexp則返回true,否則返回false
別名:regexp
示例:
? > SELECT'fb'rlike'。*'FROM src LIMIT 1;
? 真正
roundround(x [,d]) - 舍入x到d小數(shù)位
示例:
? > SELECT round(12.3456,1)FROM src LIMIT 1;
? 12.3'
ROW_NUMBER
RPADrpad(str,len,pad) - 返回str,右邊填充pad,長度為len
如果str長于len,則返回值縮短為len個字符。
如果是空填充字符串,則返回值為null。
示例:
? > SELECT rpad('hi',5,'??')FROM src LIMIT 1;
? “喜???”
? > SELECT rpad('hi',1,'??')FROM src LIMIT 1;
? 'h'
? > SELECT rpad('hi',5,'')FROM src LIMIT 1;
? 空值
RTRIMrtrim(str) - 從str中刪除尾隨空格字符
例如:
? > SELECT rtrim('facebook')FROM src LIMIT 1;
? “Facebook的
secondsecond(date) - 返回字符串/ timestamp / interval的第二個組成部分
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'或'HH:mm:ss'的字符串。
2.時間戳值
3.日間隔值示例:
?? > SELECT second('2009-07-30 12:58:59')FROM src LIMIT 1;
? 59
? > SELECT second('12:58:59')FROM src LIMIT 1;
? 59
sentencessentences(str,lang,country) - 將str拆分成句子數(shù)組,其中每個句子都是一個單詞數(shù)組。'lang'和'country'參數(shù)是可選的,如果省略,則使用默認語言環(huán)境。
例如:
? > SELECT句子('你好!我是UDF。')FROM src LIMIT 1;
? [[“Hello”,“there”],[“I”,“am”,“a”,“UDF”]]
? > SELECT句子(評論,語言)FROM movies;
不必要的標點符號(例如英語中的句點和逗號)會自動刪除。如果指定,'lang'應該是兩個字母的ISO-639語言代碼(例如'en'),'country'應該是兩個字母的ISO-3166代碼(例如'us')。并非所有國家/地區(qū)和語言代碼都受到完全支持,如果指定了不受支持的代碼,則使用默認語言環(huán)境來處理該字符串。
shasha(str或bin) - 計算字符串或二進制的SHA-1摘要,并將值作為十六進制字符串返回。
別名:sha1
例如:
? > SELECT sha('ABC');
? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'
? > SELECT sha(binary('ABC'));
? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'
sha1sha1(str或bin) - 計算字符串或二進制的SHA-1摘要,并將值作為十六進制字符串返回。
別名:sha
示例:
? > SELECT sha1('ABC');
? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'
? > SELECT sha1(二進制('ABC'));
? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'
SHA2sha2(string / binary,len) - 計算SHA-2系列散列函數(shù)(SHA-224,SHA-256,SHA-384和SHA-512)。
第一個參數(shù)是要進行哈希處理的字符串或二進制文件。第二個參數(shù)表示結果的所需位長度,其值必須為224,256,384,512或0(相當于256)。從Java 8開始支持SHA-224。如果任一參數(shù)為NULL或散列長度不是允許值之一,則返回值為NULL。
示例:> SELECT sha2('ABC',256);
?'b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78'
shiftleftshiftleft(a,b) - 按位左移
為tinyint,smallint和int a返回int。返回bigint的bigint a。
示例:
? > SELECT shiftleft(2,1);
? 4
shiftrightshiftright(a,b) - 按位右移
為tinyint,smallint和int a返回int。返回bigint的bigint a。
示例:
? > SELECT shiftright(4,1);
? 2
shiftrightunsignedshiftrightunsigned(a,b) - 按位無符號右移
為tinyint,smallint和int a返回int。返回bigint的bigint a。
示例:
? > SELECT shiftrightunsigned(4,1);
? 2
signsign(x) - 返回x的符號
示例:
?? > SELECT sign(40)FROM src LIMIT 1;
? 1
sinsin(x) - 返回x的正弦值(x以弧度表示)
例如:
?? > SELECT sin(0)FROM src LIMIT 1;
? 0
sizesize(a) - 返回a的大小
sort_arraysort_array(array(obj1,obj2,...)) - 根據(jù)數(shù)組元素的自然順序按升序對輸入數(shù)組進行排序。
示例:
? > SELECT sort_array(array('b','d','c','a'))FROM src LIMIT 1;
? 'A B C D'
sort_array_bysort_array_by(array(obj1,obj2,...),'f1','f2',...,['ASC','DESC']) - 按用戶指定的順序(ASC,DESC)對輸入元組數(shù)組進行排序by desired field [s] name如果用戶未提及排序順序,則dafault排序順序為升序
示例:
? > SELECT sort_array_by(array(struct('g',100),struct('b',200)),'col1 ','ASC') from src LIMIT 1;
?陣列(結構( 'B',200),結構( 'G',100))
soundexsoundex(string) - 返回字符串的soundex代碼。
soundex代碼由名稱的第一個字母后跟三個數(shù)字組成。
示例:
?> SELECT soundex('Miller');
?M460
spacespace(n) - 返回n個空格
示例:
?? > SELECT space(2)FROM src LIMIT 1;
? ''
splitsplit(str,regex) - Splits str匹配正則表達式的匹配
示例:
? > SELECT split('oneAtwoBthreeC','[ABC]')FROM src LIMIT 1;
? [“一二三”]
sq_count_checksq_count_check(x) - 對標量子查詢表達式進行內部檢查,以確保返回最多一行
僅供內部使用
sqrtsqrt(x) - 返回x的平方根
示例:
?? > SELECT sqrt(4)FROM src LIMIT 1;
? 2
stackstack(n,cols ...) - 將k列轉換為n行,每行大小為k / n
STDstd(x) - 返回一組數(shù)字的標準偏差
別名:stddev,stddev_pop
STDDEVstddev(x) - 返回一組數(shù)字的標準偏差
別名:std,stddev_pop
STDDEV_POPstddev_pop(x) - 返回一組數(shù)字的標準偏差
別名:std,stddev
STDDEV_SAMPstddev_samp(x) - 返回一組數(shù)字的樣本標準差
str_to_mapstr_to_map(text,delimiter1,delimiter2) - 通過解析文本
使用兩個分隔符將文本拆分為鍵值對來創(chuàng)建映射。第一個分隔符分隔對,第二個分隔符分配鍵和值。如果只給出一個參數(shù),則使用默認分隔符:','作為delimiter1,':'作為delimiter2。
structstruct(col1,col2,col3,...) - 使用給定的字段值創(chuàng)建結構
SUBSTRsubstr(str,pos [,len]) - 返回str的子字符串,該字符串以pos開頭并且長度為len orsubstr(bin,pos [,len]) - 返回以pos開頭且長度為的字節(jié)數(shù)組的片段len
同義詞:substring
pos是一個基于1的索引。如果pos <0,則通過從str的結尾向后計數(shù)來確定起始位置。
示例:
?? > SELECT substr('Facebook',5)FROM src LIMIT 1;
? 'book'
? > SELECT substr('Facebook', - 5)FROM src LIMIT 1;
? 'ebook'
? > SELECT substr('Facebook',5,1)FROM src LIMIT 1;
? 'B'
substringsubstring(str,pos [,len]) - 返回str的子字符串,該字符串以pos開頭,長度為len orsubstring(bin,pos [,len]) - 返回以pos開頭且長度為的字節(jié)數(shù)組的片段len
同義詞:substr
pos是一個基于1的索引。如果pos <0,則通過從str的結尾向后計數(shù)來確定起始位置。
示例:
?? > SELECT substring('Facebook',5)FROM src LIMIT 1;
? 'book'
? > SELECT substring('Facebook', - 5)FROM src LIMIT 1;
? 'ebook'
? > SELECT substring('Facebook',5,1)FROM src LIMIT 1;
? 'B'
SUBSTRING_INDEXsubstring_index(str,delim,count) - 在分隔符delim的計數(shù)出現(xiàn)之前,從字符串str返回子字符串。
如果count為正數(shù),則返回最終分隔符左側的所有內容(從左側開始計算)。如果count為負數(shù),則返回最終分隔符右側的所有內容(從右側開始計算)。在搜索delim時,Substring_index執(zhí)行區(qū)分大小寫的匹配。
示例:
?> SELECT substring_index('www.apache.org','。',2);
?'www.apache'
sumsum(x) - 返回一組數(shù)字的總和
tantan(x) - 返回x的正切(x是弧度)
示例:
?? > SELECT tan(0)FROM src LIMIT 1;
? 1
to_dateto_date(expr) - 提取日期或日期時間表達式expr的日期部分
示例:
?? > SELECT to_date('2009-07-30 04:17:52')FROM src LIMIT 1;
? '2009-07-30'
to_unix_timestampto_unix_timestamp(date [,pattern]) - 返回UNIX時間戳
將指定時間轉換為自1970-01-01以來的秒數(shù)。
to_utc_timestampto_utc_timestamp(timestamp,string timezone) - 假設給定時間戳在給定時區(qū)內并轉換為UTC(從Hive 0.8.0開始)
translatetranslate(input,from,to) - 通過將from字符串中的字符替換為to字符串中的相應字符來轉換輸入字符串
translate(字符串輸入,字符串from,string to)是在PostGreSQL中翻譯的等效函數(shù)。它在輸入字符串(第一個參數(shù))上逐個字符地工作。檢查輸入中的字符是否存在于from字符串中(第二個參數(shù))。如果匹配發(fā)生,則獲得字符串到字符串(第三個參數(shù)),該字符出現(xiàn)在與字符串中的字符相同的索引處。此字符在輸出字符串中發(fā)出,而不是從輸入字符串中的原始字符發(fā)出。如果to字符串比from字符串短,則to字符串中的相同索引處可能不存在字符。在這種情況下,原始字符不會發(fā)出任何內容,而是從輸出字符串中刪除它。
例如,

translate('abcdef','adc','19')返回'1b9ef'將'a'替換為'1','d'替換為'9'并從輸入字符串中刪除'c'

('abc d', '','')返回'abcd'從輸入字符串中刪除所有空格

如果輸入字符串中多次出現(xiàn)相同的字符,則第一個出現(xiàn)的字符是考慮匹配的字符。但是,不建議在from字符串中多次使用相同的字符,因為它不是必需的,這增加了混亂。

例如,

translate('abcdef','ada','192')返回'1bc9ef'將'a'替換為'1',將'd'替換為'9'
trimtrim(str) - 從str中刪除前導和尾隨空格字符
示例:
? > SELECT trim('facebook')FROM src LIMIT 1;
? “Facebook的"
TRUNCtrunc(date,fmt)/ trunc(N,D) - 返回如果輸入是日期,則返回日期,其中當天的時間部分被截斷為格式模型fmt指定的單位。如果省略fmt,則日期將截斷為最近的一天。它目前僅支持'MONTH'/'MON'/'MM','QUARTER'/'Q'和'YEAR'/'YYYY'/'YY'作為格式。如果輸入是數(shù)字組,則返回N截斷為D十進制地方。如果省略D,則N被截斷為0位.D可以是負截斷(使零)小數(shù)點左邊的D位。
date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。日期的時間部分被忽略。
示例:
> SELECT trunc('2009-02-12', 'MM');
OK
?'2009-02-01'
?> SELECT trunc('2017-03-15', 'Q');
OK
?'2017-01-01'
?> SELECT trunc('2015-10-27', 'YEAR');
OK
?'2015-01-01' > SELECT trunc(1234567891.1234567891,4);
OK
?1234567891.1234
?> SELECT trunc(1234567891.1234567891,-4);
OK
?1234560000 > SELECT trunc(1234567891.1234567891,0);
OK
?1234567891
?> SELECT trunc(1234567891.1234567891);
OK
?1234567891
UCASEucase(str) - 返回str,所有字符都更改為大寫
同義詞:upper
示例:
? > SELECT ucase('Facebook')FROM src LIMIT 1;
? 'FACEBOOK'
unbase64unbase64(str) - 將參數(shù)從base 64字符串轉換為binary
UNHEXunhex(str) - 將十六進制參數(shù)轉換為二進制
執(zhí)行HEX(str)的反向操作。也就是說,它將
參數(shù)中的每對十六進制數(shù)字解釋為數(shù)字,
并將其轉換為數(shù)字的字節(jié)表示形式。該
結果字符返回一個二進制字符串。

示例:
>?SELECT DECODE(UNHEX('4D7953514C'), 'UTF-8') from src limit 1;
'MySQL'

參數(shù)字符串中的字符必須是合法的十六進制
數(shù)字:'0'..'9','A'..'F','a'..'f'。如果UNHEX()
在參數(shù)中遇到任何非十六進制數(shù)字,則返回NULL。也,
UNIX_TIMESTAMPunix_timestamp(date [,pattern]) - 將時間
轉換為數(shù)字將指定時間轉換為自1970-01-01以來的秒數(shù)。不推薦使用unix_timestamp(void)重載,使用current_timestamp。
upperupper(str) - 返回str,所有字符都更改為大寫
同義詞:ucase
示例:
? > SELECT upper('Facebook')FROM src LIMIT 1;
? 'FACEBOOK'
UUIDuuid() - 返回通用唯一標識符(UUID)字符串。
該值作為規(guī)范的UUID 36字符字符串返回。
示例:
? > SELECT uuid();
? '0baf1f52-53df-487f-8292-99a03716b688'
? > SELECT uuid();
? '36718a53-84f5-45d6-8796-4f79983ad49d'
VAR_POPvar_pop(x) - 返回一組數(shù)字的
方差同義詞:方差
VAR_SAMPvar_samp(x) - 返回一組數(shù)字的樣本方差
variancevariance(x) - 返回一組數(shù)字的方差
同義詞:var_pop
versionversion() - 返回Hive構建版本字符串 - 包括基本版本和修訂版本。
WEEKOFYEARweekofyear(date) - 返回給定日期的一年中的一周。一周被認為是在星期一開始,第一周是第一周,> 3天。
示例:
? > SELECT weekofofar('2008-02-20')FROM src LIMIT 1;
? 8
? > SELECT weekofyear('1980-12-31 12:59:59')FROM src LIMIT 1;
? 1
whenCASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END - When a = true, returns b; when c = true, return d; else return e
Example:
?SELECT
?CASE
?? WHEN deptno=1 THEN Engineering
?? WHEN deptno=2 THEN Finance
?? ELSE admin
?END,
?CASE
?? WHEN zone=7 THEN Americas
?? ELSE Asia-Pac
?END
?FROM emp_details
windowingtablefunction
XPathxpath(xml,xpath) - 返回xml節(jié)點中與xpath表達式匹配的值的字符串數(shù)組
示例:
? > SELECT xpath('<a> <b> b1 </ b> <b> b2 </ b> <b> b3 </ b> <c> c1 </ c> <c> c2 </ c> </a>','a / text()')FROM src LIMIT 1
? []
? > SELECT xpath('<a> < b> b1 </ b> <b> b2 </ b> <b> b3 </ b> <c> c1 </ c> <c> c2 </ c> </a>','a / b / text()')FROM src LIMIT 1
? [“b1”,“b2”,“b3”]
? > SELECT xpath('<a> <b> b1 </ b> <b> b2 </ b> <b> b3 </ b> <c> c1 </ c> <c> c2 </ c> </a>','a / c / text()')FROM src LIMIT 1
? [“c1”,“c2”]
xpath_booleanxpath_boolean(xml,xpath) - 計算布爾xpath表達式
示例:
? > SELECT xpath_boolean('<a> <b> 1 </ b> </a>','a / b')FROM src LIMIT 1;
? true
? > SELECT xpath_boolean('<a> <b> 1 </ b> </a>','a / b = 2')FROM src LIMIT 1;
? 假
xpath_doublexpath_double(xml,xpath) - 返回與xpath表達式匹配的double值
別名:xpath_number
示例:
? > SELECT xpath_double('<a> <b> 1 </ b> <b> 2 </ b> </a>' ,'sum(a / b)') from src LIMIT 1;
? 3.0
xpath_floatxpath_float(xml,xpath) - 返回與xpath表達式匹配的浮點值
示例:
? > SELECT xpath_float('<a> <b> 1 </ b> <b> 2 </ b> </a>','sum (a / b)')FROM src LIMIT 1;
? 3.0
xpath_intxpath_int(xml,xpath) - 返回與xpath表達式匹配的整數(shù)值
示例:
? > SELECT xpath_int('<a> <b> 1 </ b> <b> 2 </ b> </a>','sum (a / b)')FROM src LIMIT 1;
? 3
xpath_longxpath_long(xml,xpath) - 返回與xpath表達式匹配的long值
示例:
? > SELECT xpath_long('<a> <b> 1 </ b> <b> 2 </ b> </a>','sum (a / b)')FROM src LIMIT 1;
? 3
xpath_numberxpath_number(xml,xpath) - 返回與xpath表達式匹配的double值
別名:xpath_double
示例:
? > SELECT xpath_number('<a> <b> 1 </ b> <b> 2 </ b> </a>' ,'sum(a / b)')from src LIMIT 1;
? 3.0
xpath_shortxpath_short(xml,xpath) - 返回與xpath表達式匹配的short值
示例:
? > SELECT xpath_short('<a> <b> 1 </ b> <b> 2 </ b> </a>','sum (a / b)')FROM src LIMIT 1;
? 3
xpath_stringxpath_string(xml,xpath) - 返回與xpath表達式匹配的第一個xml節(jié)點的文本內容
示例:
? > SELECT xpath_string('<a> <b> b </ b> <c> cc </ c> </ a >','a / c')FROM src LIMIT 1;
? 'cc'
? > SELECT xpath_string('<a> <b> b1 </ b> <b> b2 </ b> </a>','a / b')FROM src LIMIT 1;
? 'b1'
? > SELECT xpath_string('<a> <b> b1 </ b> <b> b2 </ b> </a>','a / b [2]')FROM src LIMIT 1;
? 'b2'
? > SELECT xpath_string('<a> <b> b1 </ b> <b> b2 </ b> </a>','a')FROM src LIMIT 1;
? 'B1B2'
yearyear(param) - 返回日期/時間戳/間隔的年份組件
param可以是以下之一:
1。格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。
2.日期值
3.時間戳值
4.年 - 月間隔值示例:
?? > SELECT year('2009-07-30')FROM src LIMIT 1;
? 2009年

總結

以上是生活随笔為你收集整理的HIVE函数集合(全)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。