HIVE函数集合(全)
生活随笔
收集整理的這篇文章主要介紹了
HIVE函数集合(全)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HIVE函數集合
| 函數名 | 含義及實例 |
| ABS | abs(x) - 返回x的絕對值 示例: ? > SELECT abs(0)FROM src LIMIT 1; ? 0 ? > SELECT abs(-5)FROM src LIMIT 1; ? 五 |
| ACOS | acos(x) - 如果-1 <= x <= 1則返回x的反余弦值,否則返回NULL 例如: ? > SELECT acos(1)FROM src LIMIT 1; ? 0 ? > SELECT acos(2)FROM src LIMIT 1; |
| ADD_MONTHS | add_months(start_date,num_months) - 返回start_date之后的num_months日期。 start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_months是一個數字。start_date的時間部分被忽略。 示例: ? > SELECT add_months('2009-08-31',1)FROM src LIMIT 1; ?'2009-09-30' |
| AES_DECRYPT | aes_decrypt(輸入二進制,密鑰字符串/二進制) - 使用AES解密輸入。 AES(高級加密標準)算法。可以使用128,192或256位的密鑰長度。如果安裝了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,則可以使用192和256位密鑰。如果任一參數為NULL或密鑰長度不是允許值之一,則返回值為NULL。 示例:> SELECT aes_decrypt(unbase64('y6Ss + zCYObpCbgfWfyNWTw =='),'1234567890123456'); ?'ABC' |
| AES_ENCRYPT | aes_encrypt(輸入字符串/二進制,密鑰字符串/二進制) - 使用AES加密輸入。 AES(高級加密標準)算法。可以使用128,192或256位的密鑰長度。如果安裝了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files,則可以使用192和256位密鑰。如果任一參數為NULL或密鑰長度不是允許值之一,則返回值為NULL。 示例:> SELECT base64(aes_encrypt('ABC','1234567890123456')); ?'y6Ss + zCYObpCbgfWfyNWTw ==' |
| and | a1和a2和......以及 - 邏輯和 |
| array | array(n0,n1 ...) - 使用給定元素創建數組? |
| array_contains | array_contains(array,value) - 如果數組包含值,則返回TRUE。 示例: ? > SELECT array_contains(array(1,2,3),2)FROM src LIMIT 1; ? 真正 |
| ASCII | ascii(str) - 返回str的第一個字符的數值 如果str為空則返回0;如果str為NULL,則返回NULL 示例: ? > SELECT ascii('222')FROM src LIMIT 1; 50 ? > SELECT ascii(2)FROM src LIMIT 1; ? 50 |
| asin | asin(x) - 如果-1 <= x <= 1則返回x的反正弦,否則返回NULL 例如: ? > SELECT asin(0)FROM src LIMIT 1; ? 0 ? > SELECT asin(2)FROM src LIMIT 1; ? 空值 |
| ASSERT_TRUE | assert_true(condition) - 如果'condition'不為真,則拋出異常。 示例: ?? > SELECT assert_true(x> = 0)FROM src LIMIT 1; ? 空值 |
| atan | atan(x) - 返回x的atan(arctan)(x是弧度) 示例: ?? > SELECT atan(0)FROM src LIMIT 1; ? 0 |
| avg | avg(x) - 返回一組數字的平均值 |
| BASE64 | base64(bin) - 將參數從二進制轉換為base 64字符串 |
| between | 在[NOT] BETWEEN b和c之間 - 評估a是否在b和c之間 |
| bin | bin(n) - 返回二進制 n中的n是BIGINT。如果n為NULL,則返回NULL。 示例: ? > SELECT bin(13)FROM src LIMIT ? 1'1101' |
| bloom_filter | 函數'bloom_filter'沒有文檔 |
| bround | bround(x [,d]) - 使用HALF_EVEN舍入模式將x舍入到d小數位。 銀行家的四舍五入。該值四舍五入到最接近的偶數。也稱為高斯舍入。 示例: ? > SELECT bround(12.25,1); ? 12.2 |
| cardinality_violation | cardinality_violation(n0,n1 ...) - 引發基數違規 |
| case | CASE 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 |
| CBRT | cbrt(double) - 返回double值的立方根。 示例: ?> SELECT cbrt(27.0); ?3.0 |
| ceil | ceil(x) - 求小于x的最小整數 同義詞:ceiling 示例: ? > SELECT ceil(-0.1)FROM src LIMIT 1; ? 0 ? > SELECT ceil(5)FROM src LIMIT 1; ? 五 |
| ceiling | ceiling(x) - 找到不小于x的最小整數 同義詞:ceil 例: ? > SELECT ceiling(-0.1)FROM src LIMIT 1; ? 0 ? > SELECT ceiling(5)FROM src LIMIT 1; ? 五 |
| CHAR_LENGTH | char_length(str | binary) - 返回str或二進制數據中的字符數 別名:character_length 示例: ? > SELECT char_length('HUX81')FROM src LIMIT 1; ? 五 |
| CHARACTER_LENGTH | character_length(str | binary) - 返回str或二進制數據中的字符數 別名:char_length 示例: ? > SELECT character_length('HUX81')FROM src LIMIT 1; ? 五 |
| CHR | chr(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; ? '一個' |
| coalesce | coalesce(a1,a2,...) - 返回第一個非空參數 示例: ? > SELECT coalesce(NULL,1,NULL)FROM src LIMIT 1; ? 1 |
| collect_list | collect_list(x) - 返回具有重復項的對象列表 |
| collect_set | collect_set(x) - 返回一組消除了重復元素的對象 |
| compute_stats | compute_stats(x) - 返回一組基本類型值的統計摘要。 |
| CONCAT | concat(str1,str2,... strN) - 返回str1,str2,... strN或concat(bin1,bin2,... binN)的串聯 - 返回二進制數據bin1,bin2,...中的字節串聯。 .. binN 如果任何參數為NULL,則返回NULL。 示例: ? > SELECT concat('abc','def')FROM src LIMIT 1; ? 'ABCDEF' |
| CONCAT_WS | concat_ws(separator,[string | array(string)] +) - 返回由分隔符分隔的字符串的串聯。 示例: ? > SELECT concat_ws('。','www',array('facebook','com'))FROM src LIMIT 1; ? 'www.facebook.com' |
| context_ngrams | context_ngrams(expr,array <string1,string2,...>,k,pf)估計適合指定上下文的top-k最頻繁的n-gram。第二個參數指定一個字符串,用于指定n-gram元素的位置,其中空值表示必須由n-gram元素填充的“空白”。 主表達式必須是字符串數組或字符串數??組數組,例如句子()UDF的返回類型。第二個參數指定上下文 - 例如,數組(“i”,“love”,null) - 它將估計主表達式中“i love”短語后面的頂部“k”字。可選的第四個參數'pf'控制啟發式使用的內存。值越大,精度越高,但要使用更多內存。用法示例: ? SELECT context_ngrams(句子(lower(review)),array(“i”,“love”,null,null),10)FROM電影 會嘗試確定“我愛”之后的10個最常見的雙字短語自由形式自然語言電影評論數據庫。 |
| CONV | conv(num,from_base,to_base) - 將num從from_base轉換為to_base 如果to_base為負數,則將num視為有符號整數,否則將其視為無符號整數。 示例: ? > SELECT conv('100',2,10)FROM src LIMIT 1; ? '4' ? > SELECT conv(-10,16,-10)FROM src LIMIT 1; ? '16' |
| corr | corr(y,x) - 返回 一組數字對之間的Pearson相關系數 該函數將任意一對數字類型作為參數,并返回一個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是總體協方差, STDDEV_POP是總體標準差。 |
| COS | cos(x) - 返回x的余弦值(x是弧度) 示例: ?? > SELECT cos(0)FROM src LIMIT 1; ? 1 |
| count | count(*) - 返回檢索到的行的總數,包括包含NULL值的行。 count(expr) - 返回提供的表達式為非NULL的行數。 count(DISTINCT expr [,expr ...]) - 返回提供的表達式唯一且非NULL的行數。 |
| Covr_pop | covar_pop(x,y) - 返回一組數字對的總體協方差 該函數將任意一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。如果該函數應用于空集, 則返回NULL 。否則,它計算以下內容: ?? (SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/ COUNT(x,y) 其中x和y都不為空。 |
| Covr_samp | covar_samp(x,y) - 返回一組數字對的樣本協方差 該函數將任意一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 如果應用于具有單個元素的集合:將返回NULL。 否則,它計算以下內容: ?? (SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/(COUNT(x,y)-1) 其中x和y都不為null 。 1 |
| CRC32 | crc32(str或bin) - 計算字符串或二進制參數的循環冗余校驗值并返回bigint值。 示例: ? > SELECT crc32('ABC'); ? 2743272264 ? > SELECT crc32(binary('ABC')); ? 2743272264 |
| create_union | create_union(tag,obj1,obj2,obj3,...) - 使用給定標記的對象創建一個聯合 示例: ? > SELECT create_union(1,1,“one”)FROM src LIMIT 1; ? 一 |
| CUME_DIST | 函數'cume_dist'沒有文檔 |
| current_database | current_database() - 當前使用數據庫名稱返回 |
| current_database | current_date() - 返回查詢評估開始時的當前日期。同一查詢中current_date的所有調用都返回相同的值。 |
| CURRENT_TIMESTAMP | current_timestamp() - 返回查詢評估開始時的當前時間戳。同一查詢中的current_timestamp的所有調用都返回相同的值 |
| current_user | current_user() - 返回當前用戶名 |
| DATE_ADD | date_add(start_date,num_days) - 返回start_date之后的num_days日期。 start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_days是一個數字。start_date的時間部分被忽略。 示例: ?? > SELECT date_add('2009-07-30',1)FROM src LIMIT 1; ? '2009-07-31' |
| date_format | date_format(date / timestamp / string,fmt) - 以日期格式fmt指定的格式將日期/時間戳/字符串轉換為字符串值。 支持的格式是SimpleDateFormat格式 - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html。第二個參數fmt應該是常量。 示例:> SELECT date_format('2015-04-08','y'); ?'2015' |
| DATE_SUB | date_sub(start_date,num_days) - 返回start_date之前的num_days日期。 start_date是格式為'yyyy-MM-dd HH:mm:ss'或'yyyy-MM-dd'的字符串。num_days是一個數字。start_date的時間部分被忽略。 示例: ?? > SELECT date_sub('2009-07-30',1)FROM src LIMIT 1; ? '2009-07-29' |
| DATEDIFF | datediff(date1,date2) - 返回date1和date2之間的天數 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 |
| day | day(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; ? 三十 |
| DAYOFMONTH | dayofmonth(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; ? 三十 |
| dayofweek | dayofweek(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; ? 五 |
| decode | decode(bin,str) - 使用第二個參數字符集解碼第一個參數字符集的 可能選項是'US-ASCII','ISO-8859-1', 'UTF-8','UTF-16BE', 'UTF-16LE'和'UTF-16'。如果任一參數 為null,則結果也將為null |
| degrees | degrees(x) - 將弧度轉換為度數 示例: ? > SELECT degrees(30)FROM src LIMIT 1; ? -1 |
| DENSE_RANK | 函數'dense_rank'沒有文檔 |
| DIV | a div b - 將a除以b舍入為長整數 示例: ? > SELECT 3 div 2 FROM src LIMIT 1; ? 1 |
| e | e() - 返回E 示例: ?> SELECT e()FROM src LIMIT 1; ?2.718281828459045 |
| elt | elt(n,str1,str2,...) - 返回第n個字符串 例如: ? > SELECT elt(1,'face','book')FROM src LIMIT 1; ? '面對' |
| encode | encode(str,str) - 使用第二個參數字符集對第一個參數進行編碼字符集的 可能選項是“US-ASCII”,“ISO-8859-1”, “UTF-8”,“UTF-16BE”, 'UTF-16LE'和'UTF-16'。如果任一參數 為null,則結果也將為null |
| ewah_bitmap | ewah_bitmap(expr) - 返回列的EWAH壓縮位圖表示。 |
| ewah_bitmap_and | ewah_bitmap_and(b1,b2) - 返回EWAH壓縮的位圖,該位圖是兩個位圖的按位AND。 |
| ewah_bitmap_empty | ewah_bitmap_empty(bitmap) - 測試EWAH壓縮位圖是否全為零的謂詞 |
| ewah_bitmap_or | ewah_bitmap_or(b1,b2) - 返回EWAH壓縮位圖,該位圖是兩個位圖的按位OR。 |
| EXP | exp(x) - 返回e到x的冪的 例子: ?? > SELECT exp(0)FROM src LIMIT 1; ? 1 |
| explode | explode(a) - 將數組a的元素分成多行,或將map的元素分成多個行和列 |
| extract_union | extract_union(union [,tag]) - 遞歸地將聯合分解為結構或簡單地提取給定的標記。 ? > 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; ? 空值 |
| factorial | factorial(int) - 返回n階乘。有效n為[0..20]。 如果n超出[0..20]范圍,則??返回null。 示例: ?> SELECT factorial(5); ?120 |
| field | field(str,str1,str2,...) - 返回str1,str2,...列表中str的索引或0如果未找到 則支持所有基元類型,使用str.equals(x)比較參數。如果str為NULL,則返回值為0。 |
| FIND_IN_SET | find_in_set(str,str_array) - 返回str_array中str的第一個匹配項,其中str_array是逗號分隔的字符串。如果任一參數為null,則返回null。如果第一個參數有逗號,則返回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 | 函數'first_value'沒有文檔 |
| floor | floor(x) - 查找不大于x的最大整數 示例: ? > SELECT floor(-0.1)FROM src LIMIT 1; ? -1 ? > SELECT floor(5)FROM src LIMIT 1; ? 五 |
| floor_day | floor_day(param) - 返回一天的時間戳粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_day(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-dd 00:00:00 |
| floor_hour | floor_hour(param) - 返回一小時的時間戳粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_hour(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-dd HH:00:00 |
| floor_minute | floor_minute(param) - 返回一分鐘時間戳,粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_minute(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-dd HH:mm:00 |
| floor_month | floor_month(param) - 返回一個月的時間戳粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_month(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-01 00:00:00 |
| floor_quarter | floor_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_second | floor_second(param) - 返回第二個粒度 參數的時間戳需要是時間戳值 示例: ?? > SELECT floor_second(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-dd HH:mm:ss |
| floor_week | floor_week(param) - 返回一周的時間戳粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_week(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-MM-xx 00:00:00 |
| floor_year | floor_year(param) - 返回一年中的時間戳粒度 param需要是一個時間戳值 示例: ?? > SELECT floor_year(CAST('yyyy-MM-dd HH:mm:ss'AS TIMESTAMP))FROM src; ? yyyy-01-01 00:00:00 |
| format_number | format_number(X,D或F) - 將數字X格式化為'#,###,###。##'等格式,舍入到D小數位,或者使用指定格式F格式化,并返回結果作為字符串。如果D為0,則結果沒有小數點或小數部分。這應該像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_UNIXTIME | from_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_timestamp | from_utc_timestamp(timestamp,string timezone) - 假設給定的時間戳是UTC并轉換為給定的時區(從Hive 0.8.0開始) |
| get_json_object | get_json_object(json_txt,path) - 從路徑中 提取json對象從基于指定的json路徑的json字符串中提取json對象,并返回提取的json對象的json字符串。如果輸入json字符串無效,它將返回null。 支持的JSONPath限制版本: ? $:Root對象 ? 。:子運算符 ? []:數組 ? *的下標運算符:[] 不支持的通配符值得注意: ? '':作為鍵的零長度字符串 ? ..:遞歸下降 ? &amp;#064; :當前對象/元素 ? ():腳本表達式 ? ?():過濾器(腳本)表達式。 ? [,]:聯盟運營商 ? [start:end:step]:數組切片運算符 |
| get_splits | get_splits(string,int) - 返回引用的表字符串的長度為int serialized的數組。 |
| maximum | maximum(v1,v2,...) - 返回值列表中的最大值 示例: ? > SELECT maximum(2,3,1)FROM src LIMIT 1; ? 3 |
| grouping | grouping(a,b) - 指示是否聚合指定的列表達式。返回1表示聚合,0表示未聚合。 a是分組ID,b是我們要提取的索引 |
| hash | hash(a1,a2,...) - 返回參數的哈希值 |
| hex | hex(n,bin或str) - 將參數轉換為十六進制 如果參數是字符串,則為字符串中的每個字符返回兩個十六進制數字。 如果參數是數字或二進制,則返回十六進制表示。 示例: ? > SELECT hex(17)FROM src LIMIT 1; ? 'H1' ? > SELECT hex('Facebook')FROM src LIMIT 1; ? '46616365626F6F6B' |
| histogram_numeric | histogram_numeric(expr,nb) - 使用nb bin計算數字'expr'的直方圖。 示例: > SELECT histogram_numeric(val,3)FROM src; [{ “×”:100, “Y”:14.0},{ “×”:200, “Y”:22.0},{ “×”:290.5, “Y”:11.0}] 返回值是表示直方圖區間中心的(x,y)對數組。隨著'nb'的值增加,直方圖近似得到更細粒度,但可能會產生異常值周圍的偽影。在實踐中,20-40個直方圖箱似乎運行良好,傾斜或較小的數據集需要更多的箱。請注意,此函數會創建一個具有非均勻bin寬度的直方圖。它不能保證直方圖的均方誤差,但實際上與R / S-Plus統計計算包產生的直方圖相當。 |
| hour | hour(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 |
| if | IF(expr1,expr2,expr3) - 如果expr1為TRUE(expr1 <> 0且expr1 <> NULL)則IF()返回expr2; 否則返回expr3。IF()返回數值或字符串值,具體取決于使用它的上下文。 |
| test in | test in(val1,val2 ...) - 如果test等于任何valN,則返回true |
| in_bloom_filter | |
| in_file中 | in_file(str,filename) - 如果str出現在文件中,則返回true |
| index | index(a,n) - 返回a的第n個元素 |
| INITCAP | initcap(str) - 返回str,每個單詞的第一個字母用大寫字母表示,所有其他字母用小寫字母表示。單詞由空格分隔。 示例: ?> SELECT initcap('tHe soap')FROM src LIMIT 1; ?'肥皂' |
| inline | inline(ARRAY(STRUCT()[,STRUCT()] - 將數據和結構分解為表 |
| INSTR | instr(str,substr) - 返回str中第一次出現substr的索引 例如: ? > SELECT instr('Facebook','boo')FROM src LIMIT 1; ? 五 |
| internal_interval | internal_interval(intervalType,intervalArg) 此方法不是設計用于直接調用它 - 它為'INTERVAL(intervalArg)intervalType'構造提供內部支持 |
| isnotnull | isnotnull a - 如果a不為NULL則返回true,否則返回false |
| isnull a | isnull a - 如果a為NULL則返回true,否則返回false |
| java_method | java_method(class,method [,arg1 [,arg2 ..]])使用反射調用方法 同義詞:reflect 使用此UDF通過匹配參數簽名來調用Java方法 |
| json_tuple | json_tuple(jsonStr,p1,p2,...,pn) - 與get_json_object類似,但它需要多個名稱并返回一個元組。所有輸入參數和輸出列類型都是字符串。 函數類:org.apache.hadoop.hive.ql.udf.generic.GenericUDTFJSONTuple |
| LAG | LAG(scalar_expression [,offset] [,default])OVER([query_partition_clause] order_by_clause); LAG函數用于訪問前一行的數據。 示例: ?選擇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_day | last_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 | |
| LCASE | lcase(str) - 返回str,所有字符都改為小寫 同義詞:lower 示例: ? > SELECT lcase('Facebook')FROM src LIMIT 1; ? “Facebook的 |
| lead | LEAD(scalar_expression [,offset] [,default])OVER([query_partition_clause] order_by_clause); LEAD函數用于從下一行返回數據。 示例: ?選擇p_name,p_retailprice,lead(p_retailprice)over()為l1, ?lag(p_retailprice)over()為l2 ?, ?其中p_retailprice = 1173.15 |
| least | least(v1,v2,...) - 返回值列表中的最小值 示例: ? > SELECT least(2,3,1)FROM src LIMIT 1; ? 1 |
| length | length(str | binary) - 返回str的長度或二進制數據中的字節數 示例: ? > SELECT length('Facebook')FROM src LIMIT 1; ? 8 |
| levenshtein | levenshtein(str1,str2) - 該函數計算兩個弦之間的Levenshtein距離。 Levenshtein距離是用于測量兩個序列之間差異的字符串度量。非正式地,兩個單詞之間的Levenshtein距離是將一個單詞改為另一個單詞所需的單字符編輯(即插入,刪除或替換)的最小數量。它以弗拉基米爾·萊文 ? 斯坦(Vladimir Levenshtein)的名字命名,他在1965年考慮過這個距離。例如:>選擇levenshtein('小貓','坐著'); ?3 |
| like | like(str,pattern) - 檢查str是否匹配模式 示例: ? > SELECT a.* FROM srcpart a WHERE a.hr like'%2'LIMIT 1; ? 27 val_27 2008-04-08 12 |
| LN | ln(x) - 返回x的自然對數 示例: ? > SELECT ln(1)FROM src LIMIT 1; ? 0 |
| locate | locate(substr,str [,pos]) - 返回位置pos后str中第一次出現substr的位置 示例: ? > SELECT locate('bar','foobarbar',5)FROM src LIMIT 1; ? 7 |
| log | log([b],x) - 返回x與base b的對數 示例: ? > SELECT log(13,13)FROM src LIMIT 1; ? 1 |
| LOG10 | log10(x) - 返回x的基數為10的對數 示例: ? > SELECT log10(10)FROM src LIMIT 1; ? 1 |
| LOG2 | log2(x) - 返回x的基數為2的對數 示例: ? > SELECT log2(2)FROM src LIMIT 1; ? 1 |
| LOGGED_IN_USER | logged_in_user() - 返回登錄的用戶名 SessionState GetUserName - 會話初始化時提供的用戶名 |
| lower | lower(str) - 返回str,所有字符都改為小寫 同義詞:lcase 示例: ? > SELECT lower('Facebook')FROM src LIMIT 1; ? “Facebook的 |
| LPAD | lpad(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; ? 空值 |
| LTRIM | ltrim(str) - 從str中刪除前導空格字符 例如: ? > SELECT ltrim('facebook')FROM src LIMIT 1; ? “Facebook的 |
| lower | lower(key0,value0,key1,value1 ...) - 創建具有給定鍵/值對的映射? |
| map_keys | map_keys(map) - 返回包含輸入映射鍵的無序數組 |
| map_values | map_values(map) - 返回包含輸入映射值的無序數組。 |
| mask | 掩蓋給定值 示例: ?? mask(ccn) ?? mask(ccn,'X','x','0') ?? mask(ccn,'x','x','x') ?參數: ?? 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 - 用數字字符替換的字符。指定-1以保留原始字符。默認值:' ???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1 ???? numberChar - 用數字替換數字的字符。有效值: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') ?參數: ?? mask(value,charCount,upperChar,lowerChar,digitChar,otherChar, numberChar) ???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR ???? charCount - 字符數。默認值:4 ???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:' ???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x' ???? digitChar - 用數字字符替換的字符。指定-1以保留原始字符。默認值:' ???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1 ???? numberChar - 用數字替換數字的字符。有效值:0-9。默認值:'1' |
| mask_hash | 返回給定值的哈希值 示例: ?? mask_hash(value) ?參數: ?? value - 要掩碼的值。支持的類型:STRING,VARCHAR,CHAR |
| mask_last_n | 屏蔽值的最后n個字符 示例: ?? mask_last_n(ccn,8) ?? mask_last_n(ccn,8,'x','x','x') ?參數: ?? mask_last_n(value,charCount,upperChar,lowerChar,digitChar,otherChar, numberChar) ???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR ???? charCount - 字符數。默認值:4 ???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:' ???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x' ???? digitChar - 用數字字符替換的字符。指定-1以保留原始字符。默認值:' ???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1 ????? numberChar - 用數字替換數字的字符。有效值:0-9。默認值:'1' |
| mask_show_first_n | 掩碼除了值的前n個字符以外的所有字符 示例: ?? mask_show_first_n(ccn,8) ?? mask_show_first_n(ccn,8,'x','x','x') ?參數: ?? mask_show_first_n(value,charCount,upperChar,lowerChar,digitChar,otherChar ,numberChar) ???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR ???? charCount - 字符數。默認值:4 ???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:' ???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x' ???? digitChar - 用數字字符替換的字符。指定-1以保留原始字符。默認值:' ???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1 ???? numberChar - 用數字替換數字的字符。有效值:0-9。默認值:'1' |
| mask_show_last_n | 掩碼除了值的最后n個字符之外的所有 例子: ?? mask_show_last_n(ccn,8) ?? mask_show_last_n(ccn,8,'x','x','x') ?參數: ?? mask_show_last_n(value,charCount,upperChar,lowerChar,digitChar,otherChar ,numberChar) ???? value - 要屏蔽的值。支持的類型:TINYINT,SMALLINT,INT,BIGINT,STRING,VARCHAR,CHAR ???? charCount - 字符數。默認值:4 ???? upperChar - 用大寫字符替換大寫字符的字符。指定-1以保留原始字符。默認值:' ???? X'lowerChar - 用小寫替換小寫字符的字符。指定-1以保留原始字符。默認值:'x' ???? digitChar - 用數字字符替換的字符。指定-1以保留原始字符。默認值:' ???? n'otherChar - 用其替換所有其他字符的字符。指定-1以保留原始字符。默認值:-1 ???? numberChar - 用數字替換數字的字符。有效值:0-9。默認值:'1' |
| matchpath | |
| max | max(expr) - 返回expr的最大值 |
| MD5 | md5(str或bin) - 為字符串或二進制文件計算MD5 128位校驗和。 該值以32個十六進制數字的字符串形式返回,如果參數為NULL,則返回NULL。 示例: ? > SELECT md5('ABC'); ? '902fbdd2b1df0c4f70b4a5d23525e932' ? > SELECT md5(二進制('ABC')); ? '902fbdd2b1df0c4f70b4a5d23525e932' |
| min | min(expr) - 返回expr的最小值 |
| minute | minute(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 |
| mod | a mod b - 當除以b時返回余數 同義詞:% |
| month | month(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_BETWEEN | months_between(date1,date2,roundOff) - 返回date1和date2之間的月數。 如果date1晚于date2,則結果為正。如果date1早于date2,則結果為負數。如果date1和date2是該月的同一天或兩個月的最后幾天,則結果始終為整數。否則,UDF將根據31天的月份計算結果的小數部分,并考慮時間組件date1和date2的差異。 date1和date2類型可以是日期,時間戳或字符串,格式為'yyyy-MM-dd'或'yyyy-MM-dd HH:mm:ss'。結果默認舍入為8位小數。否則設置roundOff = false。 ?示例: ? > SELECT months_between('1997-02-28 10:30:00',' ?3.94959677 |
| named_struct | named_struct(name1,val1,name2,val2,...) - 使用給定的字段名稱和值創建結構 |
| negative | negative a - 返回-a |
| next_day | next_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日” |
| ngrams | ngrams(expr,n,k,pf) - 估計由字符串序列組成的行中的前k個n-gram,表示為字符串數組或字符串數??組數組。'pf'是一個可選的精度因子,用于控制內存使用量。 參數'n'指定估計什么類型的n-gram。Unigrams是n = 1,并且bigrams是n = 2.通常,n不會大于約5.'k'參數指定UDAF將返回多少個最高頻率的n-gram。可選的精度因子'pf'指定用于估計的內存量; 更多的內存將提供更準確的頻率計數,但可能會使JVM崩潰。默認值為20,內部保持20 * k n-gram,但僅返回k個最高頻率的值。輸出是一組具有前n個n-gram的結構。爆炸()這個UDAF的輸出可能很方便。 |
| noop | |
| noopstreaming | |
| noopwithmap | |
| noopwithmapstreaming | |
| not | not a - 邏輯而不是同義詞:! |
| ntile | |
| NULLIF | SELECT nullif(1,1),nullif(1,2) |
| NVL | nvl(value,default_value) - 如果value為null則返回默認值,否則返回value 示例: ? > SELECT nvl(null,'bla')FROM src LIMIT 1; ? BLA |
| OCTET_LENGTH | octet_length(str | binary) - 返回str或二進制數據中的字節數 示例: ? > SELECT octet_length('HUX8 ')FROM src LIMIT 1; ? 15 |
| or | a1或a2或......或 - 邏輯或 |
| parse_url | parse_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_tuple | parse_url_tuple(url,partname1,partname2,...,partnameN) - 從URL中提取N(N> = 1)個部分。 它需要一個URL和一個或多個部件名,并返回一個元組。所有輸入參數和輸出列類型都是字符串。 部件名稱:HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE,USERINFO,QUERY:<KEY_NAME> 注意:部件名區分大小寫,不應包含不必要的空格。 示例: ? > 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 | |
| percentile | percentile(expr,pc) - 返回pc上expr的百分位數(范圍:[0,1])。pc可以是double或double數組 |
| percentile_approx | percentile_approx(expr,pc,[nb]) - 對于非常大的數據,使用可選參數[nb]作為要使用的直方圖區間數,從直方圖計算近似百分位數值。較高的nb值導致更準確的近似,代價是更高的內存使用量。 'expr'可以是任何數字列,包括雙精度和浮點數,'pc'可以是具有請求百分位數的單個double / float,也可以是具有多個百分位數的double / float數組。如果未指定'nb',則默認近似值使用10,000個直方圖區間,這意味著如果'expr'中有10,000個或更少的唯一值,則可以獲得精確的結果。百分位數()函數總是計算精確百分位數,如果列中有太多唯一值,則可能會耗盡內存,這就需要此功能。 示例(使用更精細的直方圖近似請求三個百分位數): > SELECT percentile_approx(val,array(0.5,0.95,0.98),100000)FROM somedata; [0.05,1.64,2.26] |
| pi | pi() - 返回pi 示例: ?> SELECT pi()FROM src LIMIT 1; ?3.14159 ... |
| PMOD | a pmod b - 計算正模數 |
| posexplode | posexplode(a) - 表現得像數組爆炸,但包括原始數組中項目的位置 |
| positive | positive a - 返回a |
| POW | pow(x1,x2) - 將x1提升到x2的冪。 同義詞:power 例如: ? > SELECT pow(2,3)FROM src LIMIT 1; ? 8 |
| power | power(x1,x2) - 將x1提升到x2的冪。 同義詞:pow 示例: ? > SELECT power(2,3)FROM src LIMIT 1; ? 8 |
| printf | printf(String format,Obj ... args) - 可以根據printf樣式格式字符串格式化字符串的 ? 函數 示例: > SELECT printf(“Hello World%d%s”,100,“days”)FROM src LIMIT 1; ? “Hello World 100天” |
| quarter | quarter(date / timestamp / string) - 返回日期的季度,范圍為1到4. 示例:> SELECT quarter('2015-04-08'); ?2 |
| radians | radians(x) - 將度數轉換為弧度 例如: ? > SELECT radians(90)FROM src LIMIT 1; ? 1.5707963267949mo |
| rand | rand([seed]) - 返回0到1之間的偽隨機數 |
| rank | |
| reflect | reflect(class,method [,arg1 [,arg2 ..]])使用反射調用方法 同義詞:java_method 使用此UDF通過匹配參數簽名來調用Java方法 |
| reflect2 | reflect2(arg0,method [,arg1 [,arg2 ..]])使用反射調用arg0的方法 使用此UDF通過匹配參數簽名來調用Java方法 |
| regexp | str regexp regexp - 如果str匹配regexp則返回true,否則返回false 同義詞:rlike 示例: ? > SELECT'fb'reexx ''*'FROM src LIMIT 1; ? 真正 |
| REGEXP_EXTRACT | regexp_extract(str,regexp [,idx]) - 提取與regexp匹配的組 示例: ? > SELECT regexp_extract('100-200','(\ d +) - (\ d +)',1)FROM src LIMIT 1; ? '100' |
| REGEXP_REPLACE | regexp_replace(str,regexp,rep) - 將與regexp匹配的str的所有子串替換為rep 示例: ? > SELECT regexp_replace('100-200','(\ d +)','num')FROM src LIMIT 1; ? 'NUM-NUM' |
| REGR_AVGX | egr_avgx(y,x) - 計算自變量的平均值。 該函數將任意一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 否則,它計算以下內容: ?? AVG(X) |
| REGR_AVGY | regr_avgy(y,x) - 計算因變量的平均值。 該函數將任何一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 否則,它會計算以下內容: ?? AVG(Y) |
| REGR_COUNT | regr_count(y,x) - 返回非空對的數量 該函數將任何一對數字類型作為參數,并返回long。 任何具有NULL的對都將被忽略。 |
| REGR_INTERCEPT | regr_intercept(y,x) - 返回回歸線的y軸截距。 該函數將任何一對數字類型作為參數,并返回一個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_R2 | regr_r2(y,x) - 返回回歸線的確定系數(也稱為R平方或擬合度)。 該函數將任何一對數字類型作為參數,并返回一個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_SLOPE | regr_slope(y,x) - 返回線性回歸線的斜率 該函數將任意一對數字類型作為參數,并返回一個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_SXX | regr_sxx(y,x) - 輔助分析函數 該函數將任何一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 否則,它計算以下內容: ?? SUM(x * x)-SUM(x)* SUM(x)/ N. |
| REGR_SXY | regr_sxy(y,x) - 返回一個值,該值可用于評估回歸模型的統計有效性。 該函數將任何一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。 否則,它計算以下內容: ?? SUM(x * y)-SUM(x)* SUM(y)/ N. |
| REGR_SYY | regr_syy(y,x) - 輔助分析函數 該函數將任何一對數字類型作為參數,并返回一個double。 任何具有NULL的對都將被忽略。 如果應用于空集:返回NULL。 否則,它計算以下內容: ?? SUM(y * y)-SUM(y)* SUM(y)/ N. |
| repeat | repeat(str,n) - 重復str n次 示例: ? > SELECT repeat('123',2)FROM src LIMIT 1; ? '123123' |
| replace | replace(str,search,rep) - 將'search'與'rep'匹配的所有子串替換為'rep' 示例: ? > SELECT replace('Hack and Hue','H','BL')FROM src LIMIT 1; ? 'BLACK和BLUE' |
| replicate_rows | replicate_rows(n,cols ...) - 將1行變為n行 |
| reverse | reverse(str) - reverse str 示例: ? > SELECT reverse('Facebook')FROM src LIMIT 1; ? 'koobecaF' |
| RLIKE | str rlike regexp - 如果str匹配regexp則返回true,否則返回false 別名:regexp 示例: ? > SELECT'fb'rlike'。*'FROM src LIMIT 1; ? 真正 |
| round | round(x [,d]) - 舍入x到d小數位 示例: ? > SELECT round(12.3456,1)FROM src LIMIT 1; ? 12.3' |
| ROW_NUMBER | |
| RPAD | rpad(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; ? 空值 |
| RTRIM | rtrim(str) - 從str中刪除尾隨空格字符 例如: ? > SELECT rtrim('facebook')FROM src LIMIT 1; ? “Facebook的 |
| second | second(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 |
| sentences | sentences(str,lang,country) - 將str拆分成句子數組,其中每個句子都是一個單詞數組。'lang'和'country'參數是可選的,如果省略,則使用默認語言環境。 例如: ? > SELECT句子('你好!我是UDF。')FROM src LIMIT 1; ? [[“Hello”,“there”],[“I”,“am”,“a”,“UDF”]] ? > SELECT句子(評論,語言)FROM movies; 不必要的標點符號(例如英語中的句點和逗號)會自動刪除。如果指定,'lang'應該是兩個字母的ISO-639語言代碼(例如'en'),'country'應該是兩個字母的ISO-3166代碼(例如'us')。并非所有國家/地區和語言代碼都受到完全支持,如果指定了不受支持的代碼,則使用默認語言環境來處理該字符串。 |
| sha | sha(str或bin) - 計算字符串或二進制的SHA-1摘要,并將值作為十六進制字符串返回。 別名:sha1 例如: ? > SELECT sha('ABC'); ? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' ? > SELECT sha(binary('ABC')); ? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' |
| sha1 | sha1(str或bin) - 計算字符串或二進制的SHA-1摘要,并將值作為十六進制字符串返回。 別名:sha 示例: ? > SELECT sha1('ABC'); ? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' ? > SELECT sha1(二進制('ABC')); ? '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' |
| SHA2 | sha2(string / binary,len) - 計算SHA-2系列散列函數(SHA-224,SHA-256,SHA-384和SHA-512)。 第一個參數是要進行哈希處理的字符串或二進制文件。第二個參數表示結果的所需位長度,其值必須為224,256,384,512或0(相當于256)。從Java 8開始支持SHA-224。如果任一參數為NULL或散列長度不是允許值之一,則返回值為NULL。 示例:> SELECT sha2('ABC',256); ?'b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78' |
| shiftleft | shiftleft(a,b) - 按位左移 為tinyint,smallint和int a返回int。返回bigint的bigint a。 示例: ? > SELECT shiftleft(2,1); ? 4 |
| shiftright | shiftright(a,b) - 按位右移 為tinyint,smallint和int a返回int。返回bigint的bigint a。 示例: ? > SELECT shiftright(4,1); ? 2 |
| shiftrightunsigned | shiftrightunsigned(a,b) - 按位無符號右移 為tinyint,smallint和int a返回int。返回bigint的bigint a。 示例: ? > SELECT shiftrightunsigned(4,1); ? 2 |
| sign | sign(x) - 返回x的符號 示例: ?? > SELECT sign(40)FROM src LIMIT 1; ? 1 |
| sin | sin(x) - 返回x的正弦值(x以弧度表示) 例如: ?? > SELECT sin(0)FROM src LIMIT 1; ? 0 |
| size | size(a) - 返回a的大小 |
| sort_array | sort_array(array(obj1,obj2,...)) - 根據數組元素的自然順序按升序對輸入數組進行排序。 示例: ? > SELECT sort_array(array('b','d','c','a'))FROM src LIMIT 1; ? 'A B C D' |
| sort_array_by | sort_array_by(array(obj1,obj2,...),'f1','f2',...,['ASC','DESC']) - 按用戶指定的順序(ASC,DESC)對輸入元組數組進行排序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)) |
| soundex | soundex(string) - 返回字符串的soundex代碼。 soundex代碼由名稱的第一個字母后跟三個數字組成。 示例: ?> SELECT soundex('Miller'); ?M460 |
| space | space(n) - 返回n個空格 示例: ?? > SELECT space(2)FROM src LIMIT 1; ? '' |
| split | split(str,regex) - Splits str匹配正則表達式的匹配 示例: ? > SELECT split('oneAtwoBthreeC','[ABC]')FROM src LIMIT 1; ? [“一二三”] |
| sq_count_check | sq_count_check(x) - 對標量子查詢表達式進行內部檢查,以確保返回最多一行 僅供內部使用 |
| sqrt | sqrt(x) - 返回x的平方根 示例: ?? > SELECT sqrt(4)FROM src LIMIT 1; ? 2 |
| stack | stack(n,cols ...) - 將k列轉換為n行,每行大小為k / n |
| STD | std(x) - 返回一組數字的標準偏差 別名:stddev,stddev_pop |
| STDDEV | stddev(x) - 返回一組數字的標準偏差 別名:std,stddev_pop |
| STDDEV_POP | stddev_pop(x) - 返回一組數字的標準偏差 別名:std,stddev |
| STDDEV_SAMP | stddev_samp(x) - 返回一組數字的樣本標準差 |
| str_to_map | str_to_map(text,delimiter1,delimiter2) - 通過解析文本 使用兩個分隔符將文本拆分為鍵值對來創建映射。第一個分隔符分隔對,第二個分隔符分配鍵和值。如果只給出一個參數,則使用默認分隔符:','作為delimiter1,':'作為delimiter2。 |
| struct | struct(col1,col2,col3,...) - 使用給定的字段值創建結構 |
| SUBSTR | substr(str,pos [,len]) - 返回str的子字符串,該字符串以pos開頭并且長度為len orsubstr(bin,pos [,len]) - 返回以pos開頭且長度為的字節數組的片段len 同義詞:substring pos是一個基于1的索引。如果pos <0,則通過從str的結尾向后計數來確定起始位置。 示例: ?? > 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' |
| substring | substring(str,pos [,len]) - 返回str的子字符串,該字符串以pos開頭,長度為len orsubstring(bin,pos [,len]) - 返回以pos開頭且長度為的字節數組的片段len 同義詞:substr pos是一個基于1的索引。如果pos <0,則通過從str的結尾向后計數來確定起始位置。 示例: ?? > 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_INDEX | substring_index(str,delim,count) - 在分隔符delim的計數出現之前,從字符串str返回子字符串。 如果count為正數,則返回最終分隔符左側的所有內容(從左側開始計算)。如果count為負數,則返回最終分隔符右側的所有內容(從右側開始計算)。在搜索delim時,Substring_index執行區分大小寫的匹配。 示例: ?> SELECT substring_index('www.apache.org','。',2); ?'www.apache' |
| sum | sum(x) - 返回一組數字的總和 |
| tan | tan(x) - 返回x的正切(x是弧度) 示例: ?? > SELECT tan(0)FROM src LIMIT 1; ? 1 |
| to_date | to_date(expr) - 提取日期或日期時間表達式expr的日期部分 示例: ?? > SELECT to_date('2009-07-30 04:17:52')FROM src LIMIT 1; ? '2009-07-30' |
| to_unix_timestamp | to_unix_timestamp(date [,pattern]) - 返回UNIX時間戳 將指定時間轉換為自1970-01-01以來的秒數。 |
| to_utc_timestamp | to_utc_timestamp(timestamp,string timezone) - 假設給定時間戳在給定時區內并轉換為UTC(從Hive 0.8.0開始) |
| translate | translate(input,from,to) - 通過將from字符串中的字符替換為to字符串中的相應字符來轉換輸入字符串 translate(字符串輸入,字符串from,string to)是在PostGreSQL中翻譯的等效函數。它在輸入字符串(第一個參數)上逐個字符地工作。檢查輸入中的字符是否存在于from字符串中(第二個參數)。如果匹配發生,則獲得字符串到字符串(第三個參數),該字符出現在與字符串中的字符相同的索引處。此字符在輸出字符串中發出,而不是從輸入字符串中的原始字符發出。如果to字符串比from字符串短,則to字符串中的相同索引處可能不存在字符。在這種情況下,原始字符不會發出任何內容,而是從輸出字符串中刪除它。 例如, translate('abcdef','adc','19')返回'1b9ef'將'a'替換為'1','d'替換為'9'并從輸入字符串中刪除'c' ('abc d', '','')返回'abcd'從輸入字符串中刪除所有空格 如果輸入字符串中多次出現相同的字符,則第一個出現的字符是考慮匹配的字符。但是,不建議在from字符串中多次使用相同的字符,因為它不是必需的,這增加了混亂。 例如, translate('abcdef','ada','192')返回'1bc9ef'將'a'替換為'1',將'd'替換為'9' |
| trim | trim(str) - 從str中刪除前導和尾隨空格字符 示例: ? > SELECT trim('facebook')FROM src LIMIT 1; ? “Facebook的" |
| TRUNC | trunc(date,fmt)/ trunc(N,D) - 返回如果輸入是日期,則返回日期,其中當天的時間部分被截斷為格式模型fmt指定的單位。如果省略fmt,則日期將截斷為最近的一天。它目前僅支持'MONTH'/'MON'/'MM','QUARTER'/'Q'和'YEAR'/'YYYY'/'YY'作為格式。如果輸入是數字組,則返回N截斷為D十進制地方。如果省略D,則N被截斷為0位.D可以是負截斷(使零)小數點左邊的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 |
| UCASE | ucase(str) - 返回str,所有字符都更改為大寫 同義詞:upper 示例: ? > SELECT ucase('Facebook')FROM src LIMIT 1; ? 'FACEBOOK' |
| unbase64 | unbase64(str) - 將參數從base 64字符串轉換為binary |
| UNHEX | unhex(str) - 將十六進制參數轉換為二進制 執行HEX(str)的反向操作。也就是說,它將 參數中的每對十六進制數字解釋為數字, 并將其轉換為數字的字節表示形式。該 結果字符返回一個二進制字符串。 示例: >?SELECT DECODE(UNHEX('4D7953514C'), 'UTF-8') from src limit 1; 'MySQL' 參數字符串中的字符必須是合法的十六進制 數字:'0'..'9','A'..'F','a'..'f'。如果UNHEX() 在參數中遇到任何非十六進制數字,則返回NULL。也, |
| UNIX_TIMESTAMP | unix_timestamp(date [,pattern]) - 將時間 轉換為數字將指定時間轉換為自1970-01-01以來的秒數。不推薦使用unix_timestamp(void)重載,使用current_timestamp。 |
| upper | upper(str) - 返回str,所有字符都更改為大寫 同義詞:ucase 示例: ? > SELECT upper('Facebook')FROM src LIMIT 1; ? 'FACEBOOK' |
| UUID | uuid() - 返回通用唯一標識符(UUID)字符串。 該值作為規范的UUID 36字符字符串返回。 示例: ? > SELECT uuid(); ? '0baf1f52-53df-487f-8292-99a03716b688' ? > SELECT uuid(); ? '36718a53-84f5-45d6-8796-4f79983ad49d' |
| VAR_POP | var_pop(x) - 返回一組數字的 方差同義詞:方差 |
| VAR_SAMP | var_samp(x) - 返回一組數字的樣本方差 |
| variance | variance(x) - 返回一組數字的方差 同義詞:var_pop |
| version | version() - 返回Hive構建版本字符串 - 包括基本版本和修訂版本。 |
| WEEKOFYEAR | weekofyear(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 |
| when | CASE 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 | |
| XPath | xpath(xml,xpath) - 返回xml節點中與xpath表達式匹配的值的字符串數組 示例: ? > 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_boolean | xpath_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_double | xpath_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_float | xpath_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_int | xpath_int(xml,xpath) - 返回與xpath表達式匹配的整數值 示例: ? > SELECT xpath_int('<a> <b> 1 </ b> <b> 2 </ b> </a>','sum (a / b)')FROM src LIMIT 1; ? 3 |
| xpath_long | xpath_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_number | xpath_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_short | xpath_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_string | xpath_string(xml,xpath) - 返回與xpath表達式匹配的第一個xml節點的文本內容 示例: ? > 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' |
| year | year(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函数集合(全)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [深度学习] 什么是marginaliz
- 下一篇: 成功 自信 快乐