hive数据库日常常用函数总结(更新中......)

在这里插入图片描述


一、hive数据库日常常用函数总结

Hive最适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身不会频繁变化。传统数据库中在秒级别可以完成的查询,在Hive中,即使数据集相对较小,往往也需要执行更长的时间1

1.季度日期的规范

一到四季度,分别对应到 1,4,7,10月份。

–方式一:在pg库中,需要将 string 替换为 text

concat(substr(rq,1,4),’-’,lpad(cast(((cast(substr(rq,6,2) as int)-1)/3)*3+1 as string),2,‘0’),’-01’)
–方式二:hive特有
concat(substr(rq,1,4),’-’,lpad(ceiling(substr(rq,6,2)/3)*3-2,2,‘0’),’-01’)

2. 开窗函数over()

OVER 关键字表示把聚合函数当成聚合开窗函数而不是聚合函数。主要配合分区函数、**rank()和row_number()**等函数使用。

3. 分区函数partition by用法

可参考链接博文2【分区函数partition By的用法】

group by是分组函数,partition by是分区函数(像sum()等是聚合函数),注意区分。

select *, row_number() over(partition by fwh order by exchangetime desc) as rn from jxj_ldjsc_biaozhun.s_ls_ghzrzyw_jsgcghhyyj)a
where rn = 1

4. rank()和row_number()用法

这两个函数主要配合上述分区函数使用。区别在于rank()对于并列的排名,比如有两个第一名,rank()可以都取出来,而和row_number()则只取第一行的。用法参考 【分区函数】介绍示例。

5. 数据类型转换 cast()函数

CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。

语法:

  CAST (expression AS data_type)

  参数说明:

  expression:任何有效的SQServer表达式。

  AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。

  data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

6. 数据库的正则表达式函数形式 regexp_xxxxx()

可参考博文3【hive 正则表达式详解】

7. instr()函数

INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

C1 被搜索的字符串

C2 希望搜索的字符串

I 搜索的开始位置,默认为1

J 出现的位置,默认为1

  • select instr(“abcde”,‘b’);

8.from_unixtime()函数和unix_timestamp()函数

from_unixtime()函数,可以把时间戳格式的时间,转化为年月日时分秒格式的时间。

from_unixtime的参数要求为整数,且单位为秒。

如果从业务系统拿到的时间戳格式的时间单位为毫秒,则需要先将它转化为秒

9.lateral view 与explode()函数的用法

可参考博文5【hive中的lateral view 与 explode函数的使用】

网上有一些关于lateral view 和explode()的介绍,看了一些介绍之后,总结对应的作用如下:

  • explode()函数:该函数的作用是将array或者map结构的对象,根据其包含元素的个数,进行拆分,从而形成多行结果数据,每个元素对应一行,也就是网上很多说的行转列。
  • lateral view:该关键字就是建立临时视图表,为了便于该表结果和其他的表进行关联或者从该视图表中获取响应的结果。

在这里插入图片描述

在这里插入图片描述

10.NVL()函数

nvl 叫做空值转换函数。

NVL函数的格式如下:NVL(expr1,expr2)

如果expr1为NULL,返回值为 expr2,否则返回expr1。

适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。


二、随感

关于学习笔记的记录,还是要重视起来,最好的方式就是知行合一,记录知识的重点,同时实战演练,二者结合,相对来说才会更加的容易学以致用!

看书有时候也容易三分钟热度,看来还是习惯培养的不够牢靠,坚持!

参考资源


  1. 《Hive编程指南》,作者:(美)Edward Capriolo , Dean Wampler , Jason Rutherglen,ISBN:9787115333834 ↩︎

  2. 【分区函数partition By的用法】 ↩︎

  3. 【hive 正则表达式详解】 ↩︎

  4. 【Hive 的FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法】 ↩︎

  5. 【hive中的lateral view 与 explode函数的使用】 ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_42521211/article/details/115833285