Hive常用函数总结(datediff、pmod、from_unixtime、instr、split、concat、cast、contact_ws、collect_set、row_numb)
trick:
1.能不用distinct去重,就不用它,可以考虑使用group by;
函数汇总:
1.求日期时间差:
datediff(时间A,时间B),输入是字符串类型,因此用单引号'';输出是int类型。
例子:select datediff('2018-06-06','2018-05-06')
结果:31
hive中还要一个日期前推n天的函数,得到的还是日期格式的时间:date_sub(日期,前推的时间),例子:
select date_sub('2018-08-23',1)
得到的结果是‘2018-08-22’。
两种日期的转换:dt = '20190408',partition_date = '2019-04-08'
从partition_date到dt:date2datekey('partition_date'),反过来用datekey2datek('dt')
select date2datekey('2019-04-08')
2.求星期几:pmod()
pmod(datediff(partition_date,'2018-05-06'),7)
3.根据时间戳求对应的日期:
from_unixtime(时间戳)。这里的时间戳包含两种形式:一种是10位,直接作为from_unixtime的输入就好,一类是13位,这时需要除以1000.返回值是'2018-06-02'字样的日期。
from_unixtime(timestamp)
4.获取小时:
hour()
hour(from_unixtime(order_add_timestamp))
5.字符串中查找字符:
instr( string1, string2, start_position,nth_appearance ),
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串 。
start_position:代表string1 的哪个位置开始查找。
instr(weekday_unavailable,'5')
6.拆分字符串split()
split('192.168.0.1','\\.')
得到的结果:
["192","168","0","1"]
需要注意的是:
当然当split包含在 "" 之中时 需要加4个\
如 hive -e ".... split('192.168.0.1','\\\\.') ... " 不然得到的值是null
同样的 | 等特殊符号也需要做类似 处理。
7. 连接字段的函数:concat()
用法:concat(string s1, string s2, string s3)
这个函数能够把字符串类型的数据连接起来,连接的某个元素可以是列值。
如 concat( name, ':', score) 就相当于把name列和score列用逗号连接起来了。
8. 强制转换类型函数:cast()
用法:cast(value AS TYPE)
功能:将某个列的值显示的转化为某个类型
例子:cast(score as string ) 将double类型的数据转化为了String类型
9. 设置固定连接符号的连接字段的函数:contact_ws()
9.1去重collect_set()
用法:contact_ws(seperator, string s1, string s2...)
功能:制定分隔符将多个字符串连接起来
使用concat_ws()和collect_set()进行合并行
将上面列表中一个user可能会占用多行转换为每个user占一行的目标表格式,实际是“列转行”
select user,concat_ws(',',collect_set(concat(order_type,'(',order_number,')'))) order from table group by user
其中 order是别名
collect_set的作用:
(1)去重,对group by后面的user进行去重【划重点,很重要,在某公司的组件上,不去重,不能运行】
(2)对group by以后属于同一user的形成一个集合,结合concat_ws对集合中元素使用,进行分隔形成字符串
10.组内排序函数:row_number()
用法:select COLUMN_A,COLUMN_B,
row_number() OVER (partition BY COLUMN_A ORDER BY COLUMN_B ASC/DESC) rn
from table
功能:组内排序
详情参考:https://blog.csdn.net/pearl8899/article/details/83144224
11.组内连接各个字段的函数:group_concat
用法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
功能:将有相同key的记录中的其他字段组合起来,自动连接为一个字段,该字段中的每一个元素都是同一个意思,具有相同的key。
例子:
- select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
12.返回第一个非null的参数,Coalesce函数
用法:COALESCE ( expression [ ,...n ] ),返回其参数中第一个非空表达式
举例:SELECT COALESCE(NULL, NULL, GETDATE())
解释:由于两个参数都为null,所以返回getdate()函数的值,也就是当前时间。即返回第一个非空的值。由于这个函数是返回第一个非空的值,所以参数里面必须最少有一个非空的值。如果里面都是null,则会报错。
13.将字符串转化为map的格式,函数str_to_map
用法:str_to_map(text[, delimiter1, delimiter2])
Splits text into key-value pairs using two delimiters. Delimiter1 separates text into K-V pairs, and Delimiter2 splits each K-V pair. Default delimiters are ',' for delimiter1 and '=' for delimiter2.
hive>
> select str_to_map('aaa:11&bbb:22', '&', ':')
> from tmp.tmp_jzl_20140725_test11;
OK
{"bbb":"22","aaa":"11"}
案例2:
hive> select str_to_map('aaa:11&bbb:22', '&', ':')['aaa']
> from tmp.tmp_jzl_20140725_test11;
14 删除1年前的数据分区
alter table app.test drop if exists partition(dt='$now.$now.delta(365).datekey');
15 get_json_object(AAA, '$.XXX')
解析json格式的字段,AAA={"DIB":"249.0","DIe3":"179.0"} ,
select get_json_object(AAA, '$.DIe3')
from aaa.xxxx
out:179.0
16 size()计算数组长度
17 length()计算字符串的长度
Hive常用函数总结(datediff、pmod、from_unixtime、instr、split、concat、cast、contact_ws、collect_set、row_numb)相关推荐
- hive常用函数(一)
hive常用函数一般分为下面几个部分: 算数运算符:+,- ,*, / 关系运算符:== , <>(不等于) , > , >= , < , <= 逻辑运算符:and ...
- Hive常用函数大全一览
Hive常用函数大全一览 1 关系运算 1.1 1.等值比较: = 1.2 2.不等值比较: 1.3 3.小于比较: < 1.4 4.小于等于比较: <= 1.5 5.大于比较: > ...
- 最详细的HIve常用函数整理及案例演示
Hive常用函数 一.测试数据集 1.1 测试数据集: 1.2 结果展示 二.常用函数 2.1 关系运算 2.1.1 常见关系运算符 2.1.2 空值判断 2.1.3 非空判断 2.1.4 LIKE ...
- HIVE 常用函数总结
HIVE 常用函数总结 hive 函数比较多,之前总是随用随查,今天把常用的函数总结一下,以后方便查阅. 本文主要涉及以下几个大面: 1.Hive函数介绍以及内置函数查看 内容较多,见<Hive ...
- Hive常用函数 - abs
Hive常用函数 - abs 官方解释 abs(x) - returns the absolute value of x 个人理解 就是返回函数括号内数字的绝对值. 想要获取该数的绝对值的时候就用这个 ...
- Hive常用函数(日期函数,取整函数,字符串操作函数,集合操作函数)
常用函数 常用日期函数 常用取整函数 常用字符串操作函数 集合操作函数 多维分析 常用日期函数 unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp() ...
- Hive常用函数、列转行与行转列、开窗函数、UDF、UDTF
Hive函数.开窗函数.UDF.UDTF 1.系统内置函数 2.常用函数 2.1.关系运算 2.2.数值运算 2.3.条件函数 2.4.日期函数 2.5.字符串函数 2.6.Hive求WordCoun ...
- Hive常用函数大全
目录 第1章 算数运算 1.1 加法: + 1.2 减法: - 1.3 乘法: * 1.4 除法: / 1.5 取余: % 1.6 位与: & 1.7 位或: | 1.8 位异或: ^ 1.9 ...
- hive中如何把13位转化为时间_重要知识点收藏 | Hive常用函数大全
关系运算 1.等值比较: = 语法:A=B 操作类型:所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE:否则为FALSE 举例: hive>select 1 from lxw_du ...
最新文章
- Angularjs集成第三方js插件之Uploadify
- tensorflow从入门到精通100讲(二)-IRIS数据集应用实战
- Prompt-based Language Models:模版增强语言模型小结
- Hologres揭秘:深度解析高效率分布式查询引擎
- 腾讯副总裁姚星:腾讯AI Lab将致力打造通往AGI之路
- 给其他账户访问mysql的权限,将postgresql数据库的权限授予其他用户
- python 线程的使用
- 使用Service Installer在.NET Core中配置依赖注入而无需任何代码
- CSS可见格式化模型
- python代码申请软件著作权_python自动化生成软件著作权的源代码
- IEC104 规约详细解读(一) 协议结构
- 如何html设置下载的字体呢?
- 微软必应词典案例分析
- SOP封装的后缀字母L M N都代表什么意思?
- Excel常用电子表格公式大全
- 计算机管理没有Android手机项,电脑没有手机驱动各品牌解决办法
- linux下运行icem脚本,肿么安装linux版的icem
- High-Resolution Net(HRNet) 论文笔记
- k武装匪徒强化学习入门课
- 贴片陶瓷电容的NPO、C0G、X7R、X5R、Y5V、Z5U区别
热门文章
- C++调用python,并抓取每日一句名言
- 信任用苹果企业证书发布的app证书
- 创业公司如何制定员工股份和股权的分配
- py229基于python的网上咖啡商城#毕业设计
- 细说jbd(journal-block-device) 源码分析
- NBA季后赛历史得分榜
- 在项目甘特图找到你想要的答案
- OGG dblogin错误Unrecognized parameter (SOURCEDB), expected USERID.
- 2021-2027全球及中国泳池水监测设备行业研究及十四五规划分析报告
- 2020年焊工(技师)多少分及格及焊工(技师)复审考试