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

本文详细介绍了Hive的各种内置函数,包括转换函数如cast,日期函数如to_date,条件函数如if和case...when,以及聚合函数如count和avg。此外,还提到了表生成函数explode和map相关的str_to_map。通过实例演示了这些函数的使用,帮助读者理解并掌握Hive函数操作。同时,提供了全面的Hive函数集合学习资料,助力程序员系统提升技能。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里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 全部函数集合

函数名 含义及实例
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
CHARACTER_LENGTH character_length(str
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
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个最常见的双字短语自由形式自然语言电影评论数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值