【Hive】(十一)Hive 内置函数集合_hive 中有类似mysql uuid 函数吗

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

hive> select map_keys(str_to_map('a:1,b:2'));
OK
["a","b"]
Time taken: 0.034 seconds, Fetched: 1 row(s)

array_contains:判断键是否存在

hive> select array_contains(map_keys(str_to_map('a:1,b:2')),'a');

sort_array:数组排序

hive> select sort_array(split('45,23,78,43,12',','));

5、转换函数

cast:转换数据类型

hive> select cast('2018-06-28' as date);
+----------------------------+
| cast('2018-06-28' as date) |
+----------------------------+
| 2018-06-28                 |
+----------------------------+
1 row in set (0.00 sec)

6、日期函数
  • to_date:从一个字符串中取出为日期的部分
  • year、month、day:从一个日期中取出相应的年、月、日
hive> select year(from_unixtime(unix_timestamp(),'yyyy-MM-dd'));

  • weekofyear:返回输入日期在该年中是第几个星期
  • datediff:两个日期相减,返回相差天数
  • date_add:在一个日期基础上增加天数
  • date_sub:在一个日期基础上减去天数
7、条件函数

if:如果testCondition为 true 就返回 valueTrue,否则返回 valueFalseOrNull

hive> select if
    > (1>2,'hehe','xixi');
OK
xixi
Time taken: 0.061 seconds, Fetched: 1 row(s)

nvl: value为null 返回default_value 否则返回value

hive> select nvl(null,1);
OK
1
Time taken: 0.036 seconds, Fetched: 1 row(s)
hive> select nvl(1,3);
OK
1
Time taken: 0.039 seconds, Fetched: 1 row(s)
hive> select nvl(null,null);
OK
NULL
Time taken: 0.034 seconds, Fetched: 1 row(s)

coalesce:从左到右返回第一个不为null的值

hive> select coalesce(null,null,null);
OK
NULL
Time taken: 0.042 seconds, Fetched: 1 row(s)
hive> select coalesce(null,null,null,123,34,456);
OK
123
Time taken: 0.041 seconds, Fetched: 1 row(s)

case…when…:条件表达式

hive> select name,orderdate,cost,case cost when 29 then 'hehe' else 'xixi' end from order;

语法格式:case A when B then C [when D then E]* [else F] end

解释:对于A来说,如果判断为B则返回C,如果判断为D则返回E(此处判断条件可为多个),如果以上都不是则返回F。注意,最后还有还有一个end结束符。

png)

运行结果

8、聚合函数

count:返回行数

sum:组内某列求和

min:组内某列最小值

max:组内某列最大值

avg:组内某列平均值

以工资sal为例:

select count(\*),sum(sal),max(sal),min(sal),avg(sal) from emp;

9、表生成函数

explode:把map集合中每个键值对或数组中的每个元素都单独生成一行的形式

二、Hive 全部函数集合

函数名含义及实例
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是一个数字。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位密钥。如果任一参数为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位密钥。如果任一参数为NULL或密钥长度不是允许值之一,则返回值为NULL。 示例:> SELECT base64(aes_encrypt(‘ABC’,‘1234567890123456’)); ‘y6Ss + zCYObpCbgfWfyNWTw ==’
anda1和a2和…以及 - 逻辑和
arrayarray(n0,n1 …) - 使用给定元素创建数组
array_containsarray_contains(array,value) - 如果数组包含值,则返回TRUE。 示例: > SELECT array_contains(array(1,2,3),2)FROM src LIMIT 1; 真正
ASCIIascii(str) - 返回str的第一个字符的数值 如果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) - 返回一组数字的平均值
BASE64base64(bin) - 将参数从二进制转换为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函数’bloom_filter’没有文档
broundbround(x [,d]) - 使用HALF_EVEN舍入模式将x舍入到d小数位。 银行家的四舍五入。该值四舍五入到最接近的偶数。也称为高斯舍入。 示例: > SELECT bround(12.25,1); 12.2
cardinality_violationcardinality_violation(n0,n1 …) - 引发基数违规
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的最小整数 同义词:ceiling 示例: > SELECT ceil(-0.1)FROM src LIMIT 1; 0 > SELECT ceil(5)FROM src LIMIT 1; 五
ceilingceiling(x) - 找到不小于x的最小整数 同义词:ceil 例: > SELECT ceiling(-0.1)FROM src LIMIT 1; 0 > SELECT ceiling(5)FROM src LIMIT 1; 五
CHAR_LENGTHchar_length(str
CHARACTER_LENGTHcharacter_length(str
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,…) - 返回第一个非空参数 示例: > SELECT coalesce(NULL,1,NULL)FROM src LIMIT 1; 1
collect_listcollect_list(x) - 返回具有重复项的对象列表
collect_setcollect_set(x) - 返回一组消除了重复元素的对象
compute_statscompute_stats(x) - 返回一组基本类型值的统计摘要。
CONCATconcat(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_WSconcat_ws(separator,[string
context_ngramscontext_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个最常见的双字短语自由形式自然语言电影评论数据库。
CONVconv(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’
corrcorr(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是总体标准差。
COScos(x) - 返回x的余弦值(x是弧度) 示例: > SELECT cos(0)FROM src LIMIT 1; 1
countcount(*) - 返回检索到的行的总数,包括包含NULL值的行。 count(expr) - 返回提供的表达式为非NULL的行数。 count(DISTINCT expr [,expr …]) - 返回提供的表达式唯一且非NULL的行数。
Covr_popcovar_pop(x,y) - 返回一组数字对的总体协方差 该函数将任意一对数字类型作为参数,并返回一个double。 任何具有NULL的对都将被忽略。如果该函数应用于空集, 则返回NULL 。否则,它计算以下内容: (SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/ COUNT(x,y) 其中x和y都不为空。
Covr_sampcovar_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
CRC32crc32(str或bin) - 计算字符串或二进制参数的循环冗余校验值并返回bigint值。 示例: > SELECT crc32(‘ABC’); 2743272264 > SELECT crc32(binary(‘ABC’)); 2743272264
create_unioncreate_union(tag,obj1,obj2,obj3,…) - 使用给定标记的对象创建一个联合 示例: > SELECT create_union(1,1,“one”)FROM src LIMIT 1; 一
CUME_DIST函数’cume_dist’没有文档
current_databasecurrent_database() - 当前使用数据库名称返回
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是一个数字。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。第二个参数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是一个数字。start_date的时间部分被忽略。 示例: > SELECT date_sub(‘2009-07-30’,1)FROM src LIMIT 1; ‘2009-07-29’
DATEDIFFdatediff(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
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) - 使用第二个参数字符集解码第一个参数字符集的 可能选项是’US-ASCII’,‘ISO-8859-1’, ‘UTF-8’,‘UTF-16BE’, ‘UTF-16LE’和’UTF-16’。如果任一参数 为null,则结果也将为null
degreesdegrees(x) - 将弧度转换为度数 示例: > SELECT degrees(30)FROM src LIMIT 1; -1
DENSE_RANK函数’dense_rank’没有文档
DIVa div b - 将a除以b舍入为长整数 示例: > 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) - 使用第二个参数字符集对第一个参数进行编码字符集的 可能选项是“US-ASCII”,“ISO-8859-1”, “UTF-8”,“UTF-16BE”, ‘UTF-16LE’和’UTF-16’。如果任一参数 为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) - 将数组a的元素分成多行,或将map的元素分成多个行和列
extract_unionextract_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; 空值
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)比较参数。如果str为NULL,则返回值为0。
FIND_IN_SETfind_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’没有文档
floorfloor(x) - 查找不大于x的最大整数 示例: > 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) - 返回第二个粒度 参数的时间戳需要是时间戳值 示例: > 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) - 将数字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_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并转换为给定的时区(从Hive 0.8.0开始)
get_json_objectget_json_object(json_txt,path) - 从路径中 提取json对象从基于指定的json路径的json字符串中提取json对象,并返回提取的json对象的json字符串。如果输入json字符串无效,它将返回null。 支持的JSONPath限制版本: $:Root对象 。:子运算符 []:数组 *的下标运算符:[] 不支持的通配符值得注意: ‘’:作为键的零长度字符串 …:递归下降 &amp;#064; :当前对象/元素 ():脚本表达式 ?():过滤器(脚本)表达式。 [,]:联盟运营商 [start:end:step]:数组切片运算符
get_splitsget_splits(string,int) - 返回引用的表字符串的长度为int serialized的数组。
maximummaximum(v1,v2,…) - 返回值列表中的最大值 示例: > SELECT maximum(2,3,1)FROM src LIMIT 1; 3
groupinggrouping(a,b) - 指示是否聚合指定的列表达式。返回1表示聚合,0表示未聚合。 a是分组ID,b是我们要提取的索引
hashhash(a1,a2,…) - 返回参数的哈希值
hexhex(n,bin或str) - 将参数转换为十六进制 如果参数是字符串,则为字符串中的每个字符返回两个十六进制数字。 如果参数是数字或二进制,则返回十六进制表示。 示例: > SELECT hex(17)FROM src LIMIT 1; ‘H1’ > SELECT hex(‘Facebook’)FROM src LIMIT 1; ‘46616365626F6F6B’
histogram_numerichistogram_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统计计算包产生的直方图相当。
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()返回数值或字符串值,具体取决于使用它的上下文。
test intest in(val1,val2 …) - 如果test等于任何valN,则返回true
in_bloom_filter
in_file中in_file(str,filename) - 如果str出现在文件中,则返回true
indexindex(a,n) - 返回a的第n个元素
INITCAPinitcap(str) - 返回str,每个单词的第一个字母用大写字母表示,所有其他字母用小写字母表示。单词由空格分隔。 示例: > SELECT initcap(‘tHe soap’)FROM src LIMIT 1; ‘肥皂’
inlineinline(ARRAY(STRUCT()[,STRUCT()] - 将数据和结构分解为表
INSTRinstr(str,substr) - 返回str中第一次出现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通过匹配参数签名来调用Java方法
json_tuplejson_tuple(jsonStr,p1,p2,…,pn) - 与get_json_object类似,但它需要多个名称并返回一个元组。所有输入参数和输出列类型都是字符串。 函数类:org.apache.hadoop.hive.ql.udf.generic.GenericUDTFJSONTuple
LAGLAG(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_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函数用于从下一行返回数据。 示例: 选择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
levenshteinlevenshtein(str1,str2) - 该函数计算两个弦之间的Levenshtein距离。 Levenshtein距离是用于测量两个序列之间差异的字符串度量。非正式地,两个单词之间的Levenshtein距离是将一个单词改为另一个单词所需的单字符编辑(即插入,删除或替换)的最小数量。它以弗拉基米尔·莱文 斯坦(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的自然对数 示例: > SELECT ln(1)FROM src LIMIT 1; 0
locatelocate(substr,str [,pos]) - 返回位置pos后str中第一次出现substr的位置 示例: > SELECT locate(‘bar’,‘foobarbar’,5)FROM src LIMIT 1; 7
loglog([b],x) - 返回x与base b的对数 示例: > SELECT log(13,13)FROM src LIMIT 1; 1
LOG10log10(x) - 返回x的基数为10的对数 示例: > SELECT log10(10)FROM src LIMIT 1; 1
LOG2log2(x) - 返回x的基数为2的对数 示例: > 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 …) - 创建具有给定键/值对的映射
map_keysmap_keys(map) - 返回包含输入映射键的无序数组
map_valuesmap_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
maxmax(expr) - 返回expr的最大值
MD5md5(str或bin) - 为字符串或二进制文件计算MD5 128位校验和。 该值以32个十六进制数字的字符串形式返回,如果参数为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时返回余数 同义词:%
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之间的月数。 如果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_structnamed_struct(name1,val1,name2,val2,…) - 使用给定的字段名称和值创建结构
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,表示为字符串数组或字符串数​​组数组。'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
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
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和一个或多个部件名,并返回一个元组。所有输入参数和输出列类型都是字符串。 部件名称: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
percentilepercentile(expr,pc) - 返回pc上expr的百分位数(范围:[0,1])。pc可以是double或double数组
percentile_approxpercentile_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]
pipi() - 返回pi 示例: > SELECT pi()FROM src LIMIT 1; 3.14159 …
PMODa pmod b - 计算正模数
posexplodeposexplode(a) - 表现得像数组爆炸,但包括原始数组中项目的位置
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) - 可以根据printf样式格式字符串格式化字符串的 函数 示例: > 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) - 将度数转换为弧度 例如: > SELECT radians(90)FROM src LIMIT 1; 1.5707963267949mo
randrand([seed]) - 返回0到1之间的伪随机数
rank
reflectreflect(class,method [,arg1 [,arg2 …]])使用反射调用方法 同义词:java_method 使用此UDF通过匹配参数签名来调用Java方法
reflect2reflect2(arg0,method [,arg1 [,arg2 …]])使用反射调用arg0的方法 使用此UDF通过匹配参数签名来调用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) - 计算自变量的平均值。 该函数将任意一对数字类型作为参数,并返回一个double。 任何具有NULL的对都将被忽略。 如果应用于空集:返回NULL。 否则,它计算以下内容: AVG(X)
REGR_AVGYregr_avgy(y,x) - 计算因变量的平均值。 该函数将任何一对数字类型作为参数,并返回一个double。 任何具有NULL的对都将被忽略。 如果应用于空集:返回NULL。 否则,它会计算以下内容: AVG(Y)
REGR_COUNTregr_count(y,x) - 返回非空对的数量 该函数将任何一对数字类型作为参数,并返回long。 任何具有NULL的对都将被忽略。
REGR_INTERCEPTregr_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_R2regr_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_SLOPEregr_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_SXXregr_sxx(y,x) - 辅助分析函数 该函数将任何一对数字类型作为参数,并返回一个double。 任何具有NULL的对都将被忽略。 如果应用于空集:返回NULL。 否则,它计算以下内容: SUM(x * x)-SUM(x)* SUM(x)/ N.
REGR_SXYregr_sxy(y,x) - 返回一个值,该值可用于评估回归模型的统计有效性。 该函数将任何一对数字类型作为参数,并返回一个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) - 辅助分析函数 该函数将任何一对数字类型作为参数,并返回一个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行变为n行
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小数位 示例: > 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拆分成句子数组,其中每个句子都是一个单词数组。'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’)。并非所有国家/地区和语言代码都受到完全支持,如果指定了不受支持的代码,则使用默认语言环境来处理该字符串。
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系列散列函数(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’
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,…)) - 根据数组元素的自然顺序按升序对输入数组进行排序。 示例: > 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)对输入元组数组进行排序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代码由名称的第一个字母后跟三个数字组成。 示例: > 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) - 返回一组数字的标准偏差 别名:stddev,stddev_pop
STDDEVstddev(x) - 返回一组数字的标准偏差 别名:std,stddev_pop
STDDEV_POPstddev_pop(x) - 返回一组数字的标准偏差 别名:std,stddev
STDDEV_SAMPstddev_samp(x) - 返回一组数字的样本标准差
str_to_mapstr_to_map(text,delimiter1,delimiter2) - 通过解析文本 使用两个分隔符将文本拆分为键值对来创建映射。第一个分隔符分隔对,第二个分隔符分配键和值。如果只给出一个参数,则使用默认分隔符:',‘作为delimiter1,’:'作为delimiter2。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

r_to_map | str_to_map(text,delimiter1,delimiter2) - 通过解析文本 使用两个分隔符将文本拆分为键值对来创建映射。第一个分隔符分隔对,第二个分隔符分配键和值。如果只给出一个参数,则使用默认分隔符:',‘作为delimiter1,’:'作为delimiter2。 |

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-Wy6JvHxY-1713342746083)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值