当前位置:   article > 正文

HIVE常用函数

HIVE常用函数

一、collect_set(行转列)

collect_set(col):行转列,函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
在这里插入图片描述

二、nvl 函数

NVL(表达式 1, 表达式 2)
如果表达式 1 为空值, NVL 返回值为表达式 2 的值, 否则返回表达式 1 的值。 该函数的目的是把一个空值(null) 转换成一个实际的值。 其表达式的值可以是数字型、 字符型和日期型。 但是表达式 1 和表达式 2 的数据类型必须为同一个类型。

三、日期函数

3.1date_format 函数(根据格式整理日期)

select date_format('2020-03-10','yyyy-MM');
2020-03
  • 1
  • 2

3.2 date_add 函数(加减日期)

 select date_add('2020-03-10',-1);
2020-03-09
 select date_add('2020-03-10',1);
2020-03-11
  • 1
  • 2
  • 3
  • 4

3.3 next_day 函数

(1) 取当前天的下一个周一

 select next_day('2020-03-12','MO');
2020-03-16
  • 1
  • 2

说明: 星期一到星期日的英文(Monday, Tuesday、 Wednesday、 Thursday、 Friday、 Saturday、 Sunday)
(2) 取当前周的周一

 select date_add(next_day('2020-03-12','MO'),-7);
2020-03-11
  • 1
  • 2

3.4 last_day 函数(求当月最后一天日期)

select last_day('2020-03-10'); 
2020-03-31
  • 1
  • 2

四、CASE WHEN

分别统计男、女的个数

select 
  dept_id,
  sum(case sex when '男' then 1 else 0 end) male_count,
  sum(case sex when '女' then 1 else 0 end) female_count
from 
  emp_sex
group by
  dept_id;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

五、LATERAL VIEW(列转行)

用法:LATERAL VIEW udtf(expression) tableAlias (虚拟表名)AS columnAlias(虚拟列名)
解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。

EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行
在这里插入图片描述

select
    movie,
    category_name
from 
movie_info lateral view explode(category) table_tmp as category_name;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

列转行,行转列案例:

select
    category_name,
    concat_ws('|', collect_list(movie)) movies
from 
movie_info lateral view explode(category) table_tmp as category_name
group by category_name;
```)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611223946461.png)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/568836
推荐阅读
相关标签
  

闽ICP备14008679号