Hive中常用函数
1、数学函数
(1)pmod
pmod(int a,int b) pmod(double a,double b) 返回a除b的余数的绝对值
2、字符串函数
(1) trim 去空格函数
trim(String A) 返回值 String
去除字符串两边的空格
select trim(' abc ') from lxw_dual;
(2)ltrim 左边去空格函数
ltrim(String A) 返回值 String
去除字符串左边的空格
select ltrim(' abc ') from lxw_dual;
(3)rtrim 右边去空格函数
rtrim(String A) 返回值 String
去除字符串右边的空格
select rtrim(' abc ') from lxw_dual;
(4)concat_ws (separator,str1,str2,...)
concat_ws第一个参数是其它参数的分隔符,分隔符的位置放在要连接的两个字符串之间,分隔符可以是一个字符串,也可以是其他参数。
select concat_ws(',','11','22','33'); 11,22,33
3、collect_list/collect_set列转行函数
在本地文件系统创建测试文件

存储在hive表中

按用户分组,取出每个用户每天看过的所有视频的名字

上面结果中,由于霸王别姬李四看了两遍,所以列表中存在重复,去重处理collect_set()

突破group by限制
还可以利用collect来突破group by的限制,hive中在group by查询的时候要求出现在select后面的列都必须出现在group by的后面
即select列必须作为分组依据的列,但有的时候我们想根据A分组然后随便取出每个分组中的一个B,带入到这个实验中就是按照
用户进行分组,然后随便拿出一个他看过的视频名称即可:

浙公网安备 33010602011771号